Thursday, 12 March 2009

Create a JDBC connection in Websphere Message Broker

To get access to a transactional and pooled (?) data source from a Websphere message broker Java computer node, you will need to register a configurable service first.

Example of registrating a JDBC Oracle Server

set BROKERNAME=BRK_MYNAME
set PROVIDERNAME=OracleNAME

echo delete %PROVIDERNAME%
mqsideleteconfigurableservice %BROKERNAME% -c JDBCProviders -o %PROVIDERNAME%

echo create %PROVIDERNAME%
mqsicreateconfigurableservice %BROKERNAME% -c JDBCProviders -o %PROVIDERNAME% -n connectionUrlFormat,connectionUrlFormatAttr1,databaseName,databaseType,databaseVersion,jarsURL,portNumber,securityIdentity,serverName,type4DatasourceClassName,type4DriverClassName -v "jdbc:oracle:thin:[user]/[password]@//[serverName]:[portNumber]/[connectionUrlFormatAttr1]","XXXXX","XXXXX","Oracle","10.2","C:\oracle\Ora\jdbc\lib","1521","SXX","hostname.domain.se","oracle.jdbc.xa.client.OracleXADataSource","oracle.jdbc.OracleDriver"

echo stop broker
mqsistop %BROKERNAME%

echo setup user and password for %PROVIDERNAME%
mqsisetdbparms %BROKERNAME% -n jdbc::SXX -u user -p pass

echo start broker
mqsistart %BROKERNAME%

echo report properties
mqsireportproperties %BROKERNAME% -c JDBCProviders -o OracleNAME -r

After the configurable service has been created, you can retrive the Oracle connection with the getJDBCType4Connection as such:

String connectionName = "OracleNAME";
Connection conn = null;

conn = getJDBCType4Connection(connectionName,MbNode.JDBC_TransactionType.MB_TRANSACTION_AUTO);

Because the broker is managing the connections, your code may not:
  • perform any action that COMMITs or a ROLLBACKs the database transaction.
  • closes the connection to the database.
For more information and restrictions, refer to the WMB documentation,section Interacting with databases using the JavaCompute node

No comments: