WebLogic 12.1.2 derby database and elastic jms

WebLogic 12.1.2 derby database and elastic jms

Published on: Category: Oracle

A while ago Oracle released its new version of WebLogic Server 12.1.2 with lots of new cool features such as dynamic clustering and elastic JMS. Now there have been a lot of improvements from an administrative point of view, nevertheless JMS version is still at 1.1 (already since 2002!) Version 2.0 is out but not for this release yet.

For doing some testing I didn’t have an Oracle database present, so why not use WebLogic’s embedded database Derby?

Derby database configuration

If you have a WebLogic environment configured and you need to test against a database, a quick and easy solution is offered to you. Shipped  from version 10.3.3 WebLogic uses Apache’s Derby database built in (previous versions were shipped with PointBase). Derby is Apache’s OpenSource database based on Java, it’s JDBC drivers and SQL. It has a small footprint so it’s ideal for lightweight operations. Very easy to set up, as you will read in this blog.

You could start the derby database ( on *nix systems) from command line. In the WebLogic server home the derby libraries, binaries and scripts are located under <WL_HOME>/common/derby.

First start the connection interface:

/u01/app/middleware_1212/wlserver/common/derby/bin/startNetworkServer -h <hostname> ( I used localhost, but better use your FQDN)

A more concise way to do is to embed this into your WebLogic domain. This can be done very easily by setting derby tor true in your setDomainEnv file:

DERBY_FLAG="true"
export DERBY_FLAG

Now, there are several ways to create a database:

– Through derby command line ij:

/u01/app/middleware_1212/wlserver/common/derby/bin/ij 
connect 'jdbc:derby://localhost:1527/qnlel1dbs;ServerName=localhost;databaseName=qnlel1dbs';
create=true';

– In the WebLogic console, which is a very easy way

After the test is successful, and you’ve targeted the datasource to the proper servers, it is ready for use.

Now, for my test I needed to create some tables and sequences. This can be done through command line with sql:

  1. CONNECT 'jdbc:derby://qnlel1-JFalldemo1:1527/qnlel1dbs;ServerName=qnlel1-JFalldemo1;databaseName=qnlel1dbs';
  2. CREATE TABLE BOXBURNER.TESTTAB
  3. (ID NUMERIC NOT NULL,
  4. CONTENT VARCHAR(25),
  5. PRIMARY KEY (ID))

This simple schema was for testing purposes on our Exalogic, testing an app called BoxBurner (thanks to Paul Done).

JMS

Where in previous versions,  you only could target a JMS server to a single managed server, you now can target is to a cluster! This is more understandable for admins, compared to the way it used to be. In the past, the HA came when you created JMS Modules such as distributed Queues, Connection Factories and so on.

Oracle promotes this features as Elastic (heard it at Amazon Cloud..?). The elasticity lies in the fact that you can rescale your JMS along with rescaling your Cluster, without creating new JMS Servers to every new managed server, because you have targeted it to your cluster so every new managed server will be added.

We will use the derby database as JMS store. Be aware that your derby JDBC does not support global transactions.

Now, you can create all the JMS resources in the WebLogic console, or, for automation purposes, use WLST. For this test I created a JDBC store, a JMS servers, a Connection Factory and a UDD Queue.

Creating the JDBC Persistent store, use a dedicated scheme and prefix so it’s better to identify them in the database, like this:

Now create the JMS Server using the JDBC persistent store and target to your cluster:

Then create your system module, subDeployment, Connection Factories, Queues, Topics, whatever you need:

After this you can deploy your applications (EJB, Web ) and see using JMS and storing transactions into your derby database. Be aware that you should use this setup only as a playground and never in Production.

Now, this was a simple and quick setup of how to use the build in Derby database together with the renewed JMS. In the next blog we will see what the elasticity feature of JMS does, and how our database is holding storing our persistency needs.

Michel Schildmeijer
About the author Michel Schildmeijer

Michel started his career as a medical officer in the Royal Dutch Airforce, with a focus on pharma. After the air force, he continued in pharma, followed by time working in clinical pharmacology. While there, he transitioned to IT by learning UNIX and MUMPS, and developed a system for managing patients’ medical records. As his career developed, his responsibility shifted from a deep technical perspective to a more visionary role. At the end of 2011, Michel authored a book on WebLogic Administration for beginners. He joined Qualogy in April 2012 where he expanded his repertoire significantly, serving a wide range of customers with his knowledge about Java Application Servers, Middleware and Application Integration. He also increased his multiple-industry knowledge in his role as Solutions or IT architect by working for customers in a range of sectors, including financials, telecom, public transportation and government organizations. In 2012, he received the IT Industry-recognized title of Oracle ACE for being an ambassador and community leader in his area of expertise. In 2019, this was enhanced to Oracle ACE Director. Michel is asked regularly to speak about technology and the impact of innovation at national and international conferences such as KubeCon, Oracle OpenWorld, Groundbreakers Developers Tours and others. He contributes actively to the OpenSource community and solutions regarding containerization, CI/CD and DevOps. In October 2021, Michel took an exciting step in his career by becoming Business Unit Manager for Qualogy Managed Services. While he still has a finger on the pulse in terms of technology, he is expanding his scope by combining his experience with the new insights gained in his new position. Read more via blog: https://bit.ly/3fAxrqf | Medium: https://mschildmeijer.medium.com/ | Books: Oracle Weblogic Server 11gR1 PS2: Administration Essentials: https://bit.ly/3IhALmf | Oracle WebLogic Server 12c: First Look1: https://bit.ly/31olbpj

More posts by Michel Schildmeijer
Comments
Reply