PQ90138: JMSSERVER DOES NOT START ON SERVER2 OF WSINSTANCE CREATED INSTANCE. MSGS0101E EXIT CODE: 16 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description When you use the wsinstance command to create a new server configuration instance you can create a second server (server2) from the Adminconsole of the new server configuration instance. When creating this server the createMQ command IS NOT invoked during the servers creation. When the JMS Server for server2 is set to "STARTED" during server startup the JMS Server fails to start with following error message logged: -------- MSGS0050I: Starting the Queue Manager MSGS0101E: Start Queue Manager command failed with exit code: 16 MSGS0001E: Starting the JMS Server failed with exception: java.lang.Exception: MSGS0101E: Start Queue Manager command failed with exit code: 16 at com.ibm.ws.messaging.QueueManagerManager.startQueueManager (QueueManagerManager.java:393) at com.ibm.ws.messaging.JMSEmbeddedProviderImpl.start (JMSEmbeddedProviderImpl.java:182) at com.ibm.ws.messaging.JMSService.start(JMSService.java:288) at com.ibm.ws.runtime.component.ContainerImpl.startComponents Here are the steps used that show the problem: 1. C:\WAS\bin\wsinstance>wsinstance -name WSInstTest1 -path C:\WSInstTest1 -host elise -startingPort 12000 -create 2. At this point you must replace the ${node.name} variable in your C:\WSInstTest\config\cells\Elise\security.xml with elise_WSInstTest1 3. C:\WAS\bin\wsinstance>C:\WSInstTest1\bin\setupCmdLine.bat 4. C:\WAS\bin>startServer.bat server1 5. Log into your Administrative Console http://elise:12001/admi 6. Navigate to Servers > Application Servers 7. Do New > Give the Server a name e.g. TestServer 8. Click Next Then Finish. Save changes. 9. At this point usually on the Base installation you would get a createMQ command being called,a dos window appears and you have a createMQ_elise_WSInstTest1.TestServer.log in your log directory. This is the problematic point in other words. 10. Navigate to Servers > Application Servers > TestServer > Server Component > JMS Server and Set the initial state to started and save changes. 11. Then when bringing up TestServer: C:\WAS\bin>startServer.bat TestServer 12. You get the following in your C:\WSInstTest1\logs\TestServer\SystemOut.log ■23/03/04 10:29:39:469 GMT db879fa JMSService E MSGS0001E: Starting the JMS Server failed with exception: java.lang.Exception: MSGS0101E: Start Queue Manager command failed with exit code: 16Local fix Manualy invoke the "createmq" command for the newly created server (TestServer) then the JMS Server starts without error. == KeyWords: jmsserver exitcode16 MQ admin consoleProblem summary **************************************************************** * USERS AFFECTED: Users creating wsinstance and starting the * * Application Server and jms server associated * * with it. * **************************************************************** * PROBLEM DESCRIPTION: In Base Edition, creating new * * Application Servers (say server2) in * * wsinstance env. will call createMQ * * command creating Queue Manager for * * the server. When we set the initial * * state of JMS server as "STARTED" * * during server startup for the newly * * created server (say server2), * * starting the Application Server will * * start the JMS server. * **************************************************************** * RECOMMENDATION: * **************************************************************** Problem explanation: When you use the wsinstance command to create a new server configuration instance you can create a second server (server2) from the Adminconsole of the new server configuration instance. When creating this server the createMQ command IS NOT invoked during server creation. When the JMS Server for server2 is set to "STARTED" during server startup the JMS Server fails to start with following error message logged: [] 4dac779a JMSEmbeddedPr A MSGS0050I: Starting the Queue Manager [] 4dac779a QueueManagerM E MSGS0101E: Start Queue Manager command failed with exit code: 16 [] 4dac779a JMSService E MSGS0001E: Starting the JMS Server failed with exception: java.lang.Exception: MSGS0101E: Start Queue Manager command failed with exit code: 16 at com.ibm.ws.messaging.QueueManagerManager.startQueueManager (QueueManagerManager.java:393) at com.ibm.ws.messaging.JMSEmbeddedProviderImpl.start (JMSEmbeddedProviderImpl.java:182) at com.ibm.ws.messaging.JMSService.start(JMSService.java:288) at com.ibm.ws.runtime.component.ContainerImpl.startComponents (ContainerImpl.java:543) at com.ibm.ws.runtime.component.ContainerImpl.start (ContainerImpl.java:418) at com.ibm.ws.runtime.component.ServerImpl.start (ServerImpl.java:183) at com.ibm.ws.runtime.WsServer.start(WsServer.java:128) at com.ibm.ws.runtime.WsServer.main(WsServer.java:225) at java.lang.reflect.Method.invoke(Native Method) at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94) Code Problem: --------------------------------- File : com.ibm.ws.management.util.MQTaskHandler.java private boolean applies(String docUri) { ..... if(nodeName.equals(node) && cellName.equals(node)).... } When wsinstance is created in that case cellName.equals(node) returns false and hence fails to execute the condition.Problem conclusion Code Change and explanation ------------------- File : com.ibm.ws.management.util.MQTaskHandler.java contained the following code: private boolean applies(String docUri) { .......... if( nodeName.equals(node) && cellName.equals(node) ) { } .......... } Here the problem has been identified and how it is identifed is explained as: Case1: When wsinstance is not created then nodename == node and cellname == cell and nodename == cellname (so the previous code works fine satisfying the if condition of the method) Case2: When wsinstance is created then nodename == node and cellname == cell but cellname != nodename so when the server is created on wsintance, the previous code doesn't worked and failed to satisfy the condition and hence fails to call Queue Manager command. in this case Nodename will be <cellname>_<wsinstancefoldername>. so changing the cellName.equals(node) to cellName.equals(cell) has made the situation work.Temporary fix 1.Debug module was provided to the customer. 2.Could not upload the iFix to PQ99999 site due to insufficient access privilege on which we are working now to resolve then I w ill upload the iFix to this site. 2.Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: Modules/Macros
Publications Referenced
|
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server > General
Operating system(s):
Software version: 00W
Software edition:
Reference #: PQ90138
IBM Group: Software Group
Modified date: Apr 19, 2006
(C) Copyright IBM Corporation 2000, 2008. All Rights Reserved.