Friday, January 18, 2013

WebSphere Lombardi Edition on SQLServer 2010 - No message engine was found

I installed WebSphere Lombardi Edition 7.2 win32 edition using a Microsoft SQL Server 2010 database.

After installation the database tables and content were verified (the default users should be present, otherwise you cannot log in, see previous blogpost). All tables were created, with the data present.

However when starting the twprocsvr profile, the following stacktrace came up:
Caused by:
com.lombardisoftware.client.delegate.BusinessDelegateException: CWSIA0241E: An
exception was received during the call to the method
JmsManagedConnectionFactoryImpl.createConnection:
com.ibm.websphere.sib.exception.SIResourceException: CWSIT0008E: A successful
connection was made to the bootstrap server at
srv-lom-01:7277:BootstrapBasicMessaging but the server returned an error
condition: CWSIT0088E: There are currently no messaging engines in bus
twprocsvr_bus running. Additional failure information: CWSIT0103E: No messaging
engine was found that matched the following parameters: bus=twprocsvr_bus,
targetGroup=null, targetType=BusMember, targetSignificance=Preferred,
transportChain=InboundBasicMessaging, proximity=Bus..
at
com.lombardisoftware.client.delegate.BusinessDelegateException.asBusinessDelegateException(BusinessDelegateException.java:41)
at
com.lombardisoftware.client.delegate.common.WebsphereDelegateHelper.doAsCurrentSubjectContextSensitive(WebsphereDelegateHelper.java:132)
at
com.lombardisoftware.client.delegate.EventQueueManagerDelegateDefault.browseErrorQueue(EventQueueManagerDelegateDefault.java:70)
at
com.ibm._jsp._cs_5F_event_5F_mgr_5F_queue._jspService(_cs_5F_event_5F_mgr_5F_queue.java:230)
...
53 more

No message engine running? Hmm, let's check the administration console. twprocsvr profile has no administration console installed, so I started server1 profile for problem determination.

Turns out that the message engine on twprocsvr is configured to use the datasource configured, with schema 'sa'. This is the user used I specified for authentication. There is no schema 'sa' however, the default schema on SQLServer is 'dbo'. Therefore the message engine could not create the tables required for the message engine. They can be recognized by their prefix "SIB":


I found out by looking for SIB in the SystemOut after reading on the web that this error can be caused by invalid SIB* tables.

0000000d SibMessage    E   [twprocsvr_bus:ProcessCenter01.twprocsvr-twprocsvr_bus] CWSIS0002E: The messaging engine encountered an exception while starting. Exception: com.ibm.ws.sib.msgstore.PersistenceException: CWSIS1501E: The data source has produced an unexpected exception: com.jnetdirect.jsql.JSQLNonFatalException: The specified schema name "sa" either does not exist or you do not have permission to use it.

0000000d SibMessage    E   [twprocsvr_bus:ProcessCenter01.twprocsvr-twprocsvr_bus] CWSID0035E: Messaging engine ProcessCenter01.twprocsvr-twprocsvr_bus cannot be started; detected error reported during com.ibm.ws.sib.msgstore.impl.MessageStoreImpl start()

0000000d SibMessage    E   [twprocsvr_bus:ProcessCenter01.twprocsvr-twprocsvr_bus] CWSID0027E: Messaging engine ProcessCenter01.twprocsvr-twprocsvr_bus cannot be restarted because a serious error has been reported.

0000000d SibMessage    I   [twprocsvr_bus:ProcessCenter01.twprocsvr-twprocsvr_bus] CWSID0016I: Messaging engine ProcessCenter01.twprocsvr-twprocsvr_bus is in state Stopped.

0000000d SibMessage    I   [twprocsvr_bus:ProcessCenter01.twprocsvr-twprocsvr_bus] CWSID0016I: Messaging engine ProcessCenter01.twprocsvr-twprocsvr_bus is in state Joined.

0000000d SibMessage    E   [twprocsvr_bus:ProcessCenter01.twprocsvr-twprocsvr_bus] CWSID0039E: HAManager-initiated activation has failed, messaging engine ProcessCenter01.twprocsvr-twprocsvr_bus will be disabled. Reason Refer to earlier messages

I fixed it by adding a schema 'sa' to my database in sqlserver


I changed it on database level because I could not change the schema setting on the message engine, when logging in using the tw_admin user. Hmm, I have no credentials for wasadmin... only the default lombardi credentials.