{"id":7220,"date":"2016-03-07T16:53:52","date_gmt":"2016-03-07T15:53:52","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/"},"modified":"2016-03-07T16:53:52","modified_gmt":"2016-03-07T15:53:52","slug":"install-pljava-in-postgres-plus-advanced-server-9-5","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/","title":{"rendered":"Install PL\/JAVA in Postgres Plus Advanced Server 9.5"},"content":{"rendered":"<p>While doing a project at a customer we came to a point where we needed to install <a href=\"https:\/\/github.com\/tada\/pljava\" target=\"_blank\" rel=\"noopener\">pl\/java<\/a> into Postgres Plus Advanced Server 9.5. If you follow the <a href=\"https:\/\/tada.github.io\/pljava\/install\/install.html\" target=\"_blank\" rel=\"noopener\">official documentation<\/a> you will probably fail and get stuck when trying to build pl\/java with maven (at least I did fail several times). Unfortunately there is not much documentation around for solving the issues that popped up. As we have a very good communication channel into <a href=\"http:\/\/enterprisedb.com\/\" target=\"_blank\" rel=\"noopener\">EnterpriseDB<\/a> we finally got the instructions on how to do it the right way:<\/p>\n<p>If you did a standard installation of Postgres Plus Advanced server you should find a pljava.jar file in the &#8220;lib&#8221; directory of the installation:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nenterprisedb@centos7:\/home\/enterprisedb\/ [PG2] ls \/u01\/app\/postgres\/product\/95\/db_0\/9.5AS\/lib\/pljava.jar \n\/u01\/app\/postgres\/product\/95\/db_0\/9.5AS\/lib\/pljava.jar\n<\/pre>\n<p>The next step is to point the &#8220;pljava.classpath&#8221; parameter to the location of this jar file: <\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nenterprisedb@centos7:\/home\/enterprisedb\/ [PG2] sqh\nNull display is \"NULL\".\nTiming is on.\npsql.bin (9.5.0.5)\nType \"help\" for help.\n\n(enterprisedb@[local]:5445) [postgres] &gt; alter system set pljava.classpath='\/u01\/app\/postgres\/product\/95\/db_0\/9.5AS\/lib\/pljava.jar';\nERROR:  unrecognized configuration parameter \"pljava.classpath\"\nTime: 0.327 ms\n(enterprisedb@[local]:5445) [postgres] &gt; \n<\/pre>\n<p>Hm, does not work. So lets add it directly to the postgresql.conf configuration file:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nenterprisedb@centos7:\/u02\/pgdata\/PG2\/ [PG2] echo \"pljava.classpath='\/u01\/app\/postgres\/product\/95\/db_0\/9.5AS\/lib\/pljava.jar'\" &gt;&gt; \/path\/to\/postgresql.conf\n<\/pre>\n<p>When the Postgres Plus Advanced server starts up it needs to know the location of the java libraries so adjusting the LD_LIBRARY_PATH environment variable is a good idea (if you want to do make that persistent add it to the startup script of Postgres Plus Aavanced server):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nenterprisedb@centos7:\/u02\/pgdata\/PG2\/ [PG2] export LD_LIBRARY_PATH=\/usr\/lib\/jvm\/java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64\/jre\/lib\/amd64\/server\/:$LD_LIBRARY_PATH \n<\/pre>\n<p>Once ready the server can be restarted and the &#8220;pljava.classpath&#8221; parameter should be set:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nenterprisedb@centos7:\/u02\/pgdata\/PG2\/ [PG2] pg_ctl restart -D \/u02\/pgdata\/PG2\/ -m fast\n\n\n(enterprisedb@[local]:5445) [postgres] &gt; show pljava.classpath;\n                    pljava.classpath                    \n--------------------------------------------------------\n \/u01\/app\/postgres\/product\/95\/db_0\/9.5AS\/lib\/pljava.jar\n(1 row)\n\nTime: 0.170 ms\n(enterprisedb@[local]:5445) [postgres] &gt; \n<\/pre>\n<p>Great. The next step is to execute the installation script:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nenterprisedb@[local]:5445) [postgres] &gt; i \/u01\/app\/postgres\/product\/95\/db_0\/9.5AS\/share\/pljava_install.sql                                                          \n<\/pre>\n<p>If everything went fine the output should look like this:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nCREATE SCHEMA\nTime: 1.375 ms\nGRANT\nTime: 0.855 ms\nCREATE FUNCTION\nTime: 304.740 ms\nCREATE LANGUAGE\nTime: 30.509 ms\nCREATE FUNCTION\nTime: 0.991 ms\nCREATE LANGUAGE\nTime: 0.926 ms\nCREATE TABLE\nTime: 38.192 ms\nGRANT\nTime: 1.327 ms\nCREATE TABLE\nTime: 7.942 ms\nGRANT\nTime: 0.999 ms\nALTER TABLE\nTime: 2.919 ms\nCREATE TABLE\nTime: 3.061 ms\nGRANT\nTime: 1.004 ms\nCREATE TABLE\nTime: 4.768 ms\nGRANT\nTime: 0.978 ms\nCREATE FUNCTION\nTime: 1.402 ms\nCREATE FUNCTION\nTime: 20.138 ms\nCREATE FUNCTION\nTime: 1.386 ms\nCREATE FUNCTION\nTime: 0.878 ms\nCREATE FUNCTION\nTime: 0.861 ms\nCREATE FUNCTION\nTime: 1.353 ms\nCREATE FUNCTION\nTime: 1.116 ms\nCREATE FUNCTION\nTime: 1.823 ms\nCREATE FUNCTION\nTime: 1.160 ms\n<\/pre>\n<p>Looks fine. Lets verify if the language is really registered:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n(enterprisedb@[local]:5445) [postgres] &gt; select * from pg_language where lanname like 'java%';\n lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | laninline | lanvalidator | lanacl \n---------+----------+---------+--------------+---------------+-----------+--------------+--------\n java    |       10 | t       | t            |         16656 |         0 |            0 | NULL\n javau   |       10 | t       | f            |         16658 |         0 |            0 | NULL\n(2 rows)\n\nTime: 299.411 ms\n<\/pre>\n<p>Unfortunately pl\/java is not listed as an extension:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n(enterprisedb@[local]:5445) [postgres] &gt; dx\n                                  List of installed extensions\n       Name       | Version |   Schema   |                     Description                      \n------------------+---------+------------+------------------------------------------------------\n edb_dblink_libpq | 1.0     | pg_catalog | EnterpriseDB Foreign Data Wrapper for PostgreSQL\n edb_dblink_oci   | 1.0     | pg_catalog | EnterpriseDB Foreign Data Wrapper for Oracle\n edbspl           | 1.0     | pg_catalog | EDB-SPL procedural language\n pldbgapi         | 1.0     | pg_catalog | server-side support for debugging PL\/pgSQL functions\n plpgsql          | 1.0     | pg_catalog | PL\/pgSQL procedural language\n(5 rows)\n<\/pre>\n<p>All the object have been created in a dedicated schema which contains some tables and functions:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n\n(enterprisedb@[local]:5445) [postgres] &gt; dn\n    List of schemas\n  Name  |    Owner     \n--------+--------------\n public | enterprisedb\n sqlj   | enterprisedb\n(2 rows)\n\n(enterprisedb@[local]:5445) [postgres] &gt; set search_path='sqlj';\nSET\nTime: 0.167 ms\n\n(enterprisedb@[local]:5445) [postgres] &gt; d\n                      List of relations\n Schema |           Name           |   Type   |    Owner     \n--------+--------------------------+----------+--------------\n sqlj   | classpath_entry          | table    | enterprisedb\n sqlj   | jar_entry                | table    | enterprisedb\n sqlj   | jar_entry_entryid_seq    | sequence | enterprisedb\n sqlj   | jar_repository           | table    | enterprisedb\n sqlj   | jar_repository_jarid_seq | sequence | enterprisedb\n sqlj   | typemap_entry            | table    | enterprisedb\n sqlj   | typemap_entry_mapid_seq  | sequence | enterprisedb\n(7 rows)\n\n(enterprisedb@[local]:5445) [postgres] &gt; df\n                                            List of functions\n Schema |        Name        | Result data type  |              Argument data types              |  Type  \n--------+--------------------+-------------------+-----------------------------------------------+--------\n sqlj   | add_type_mapping   | void              | character varying, character varying          | normal\n sqlj   | drop_type_mapping  | void              | character varying                             | normal\n sqlj   | get_classpath      | character varying | character varying                             | normal\n sqlj   | install_jar        | void              | bytea, character varying, boolean             | normal\n sqlj   | install_jar        | void              | character varying, character varying, boolean | normal\n sqlj   | java_call_handler  | language_handler  |                                               | normal\n sqlj   | javau_call_handler | language_handler  |                                               | normal\n sqlj   | remove_jar         | void              | character varying, boolean                    | normal\n sqlj   | replace_jar        | void              | bytea, character varying, boolean             | normal\n sqlj   | replace_jar        | void              | character varying, character varying, boolean | normal\n sqlj   | set_classpath      | void              | character varying, character varying          | normal\n(11 rows)\n\n<\/pre>\n<p>Time to see if it is really working and to create a simple java program:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nCREATE FUNCTION getsysprop(VARCHAR) RETURNS VARCHAR\n  AS 'java.lang.System.getProperty'\n  LANGUAGE java;\n<\/pre>\n<p>This should return a result when executed:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(enterprisedb@[local]:5445) [postgres] &gt; SELECT getsysprop('user.home');\n     getsysprop     \n--------------------\n \/home\/enterprisedb\n(1 row)\n\nTime: 707.600 ms\n<\/pre>\n<p>Fine, works. Have fun with pl\/java.<\/p>\n<p>Btw, for completeness there is a uninstall script, too:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(enterprisedb@[local]:5445) [postgres] &gt; ! ls \/u01\/app\/postgres\/product\/95\/db_0\/9.5AS\/share\/pljava_uninstall.sql                                  \n\/u01\/app\/postgres\/product\/95\/db_0\/9.5AS\/share\/pljava_uninstall.sql\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>While doing a project at a customer we came to a point where we needed to install pl\/java into Postgres Plus Advanced Server 9.5. If you follow the official documentation you will probably fail and get stuck when trying to build pl\/java with maven (at least I did fail several times). Unfortunately there is not [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[713],"type_dbi":[],"class_list":["post-7220","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-enterprisedb"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Install PL\/JAVA in Postgres Plus Advanced Server 9.5 - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Install PL\/JAVA in Postgres Plus Advanced Server 9.5\" \/>\n<meta property=\"og:description\" content=\"While doing a project at a customer we came to a point where we needed to install pl\/java into Postgres Plus Advanced Server 9.5. If you follow the official documentation you will probably fail and get stuck when trying to build pl\/java with maven (at least I did fail several times). Unfortunately there is not [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-07T15:53:52+00:00\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Install PL\/JAVA in Postgres Plus Advanced Server 9.5\",\"datePublished\":\"2016-03-07T15:53:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/\"},\"wordCount\":311,\"commentCount\":0,\"keywords\":[\"enterprisedb\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/\",\"name\":\"Install PL\/JAVA in Postgres Plus Advanced Server 9.5 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2016-03-07T15:53:52+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Install PL\/JAVA in Postgres Plus Advanced Server 9.5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Install PL\/JAVA in Postgres Plus Advanced Server 9.5 - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/","og_locale":"en_US","og_type":"article","og_title":"Install PL\/JAVA in Postgres Plus Advanced Server 9.5","og_description":"While doing a project at a customer we came to a point where we needed to install pl\/java into Postgres Plus Advanced Server 9.5. If you follow the official documentation you will probably fail and get stuck when trying to build pl\/java with maven (at least I did fail several times). Unfortunately there is not [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/","og_site_name":"dbi Blog","article_published_time":"2016-03-07T15:53:52+00:00","author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Install PL\/JAVA in Postgres Plus Advanced Server 9.5","datePublished":"2016-03-07T15:53:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/"},"wordCount":311,"commentCount":0,"keywords":["enterprisedb"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/","url":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/","name":"Install PL\/JAVA in Postgres Plus Advanced Server 9.5 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2016-03-07T15:53:52+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/install-pljava-in-postgres-plus-advanced-server-9-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Install PL\/JAVA in Postgres Plus Advanced Server 9.5"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/7220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=7220"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/7220\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=7220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=7220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=7220"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=7220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}