<resourceAdapter id="GenericRA" location="/git/generic-jms-ra/generic-jms-ra-rar/target/generic-jms-ra-2.0.1.Final.rar" autoStart="true"> <properties.GenericRA JndiProperties="java.naming.provider.url=tibjmsnaming://xxx:7222, java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory,java.naming.factory.url.pkgs=com.tibco.tibjms.naming,java.naming.security.principal=pass,java.naming.security.credentials=pass" LogLevel="FINER" ProviderIntegrationMode="jndi" SupportsXA="true"/> </resourceAdapter> <jmsConnectionFactory jndiName="jms/xxx_qcf"> <properties.GenericRA UserName="jmsUser" Password="jmsPassword" ConnectionFactoryJndiName ="jms/xxx_qcf"/> </jmsConnectionFactory>
[WARNING ] J2CA8501E: Property JndiProperties of configuration element properties.GenericRA cannot be set because it is not found on the class org.jboss.resource.adapter.jms.JmsResourceAdapter.[WARNING ] J2CA8501E: Property SupportsXA of configuration element properties.GenericRA cannot be set because it is not found on the class org.jboss.resource.adapter.jms.JmsResourceAdapter.[WARNING ] J2CA8501E: Property ProviderIntegrationMode of configuration element properties.GenericRA cannot be set because it is not found on the class org.jboss.resource.adapter.jms.JmsResourceAdapter.[WARNING ] J2CA8501E: Property LogLevel of configuration element properties.GenericRA cannot be set because it is not found on the class org.jboss.resource.adapter.jms.JmsResourceAdapter.
------- Previous exception stack trace -------
javax.naming.NameNotFoundException: jms/xxx_qcf
at com.ibm.ws.jndi.internal.ContextNode.lookup(ContextNode.java:218)
at com.ibm.ws.jndi.internal.WSContext.lookup(WSContext.java:297)
at com.ibm.ws.jndi.WSContextBase.lookup(WSContextBase.java:62)
at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
at javax.naming.InitialContext.lookup(InitialContext.java:428)
at ourinnerclasses.JMSToolsImpl.getConnectionFactory(JMSToolsImpl.java:1208)
<!-- Tibco EMS Resource Adapter (Generic) -->
<resourceAdapter id="GenericRA"
location="${server.config.dir}/lib/tibco/generic-jms-ra-2.0.1.Final.rar" autoStart="true">
</resourceAdapter>
<connectionFactory jndiName="jms/TopicConnectionFactory">
<properties.GenericRA
JndiParameters="java.naming.provider.url=tcp://tibcoserver1:port1,tcp://tibcoserver2.port2, java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory,java.naming.factory.url.pkgs=com.tibco.tibjms.naming,java.naming.security.principal=pass,java.naming.security.credentials=pass"
ConnectionFactory="MyTibcoTopicConnectionFactory" LogLevel="FINER" ProviderIntegrationMode="jndi" SupportsXA="true"/>
</connectionFactory>
<adminObject jndiName="jms/My_Topic" id="My_Topic">
<properties.GenericRA DestinationJndiName="T.My_TibcoTopic"/>
</adminObject>
<!-- Enable features -->
<featureManager>
<feature>jdbc-4.1</feature>
<feature>ssl-1.0</feature>
<feature>ejbHome-3.2</feature>
<feature>servlet-3.1</feature>
<feature>jsp-2.3</feature>
<feature>localConnector-1.0</feature>
<feature>adminCenter-1.0</feature>
<feature>jca-1.7</feature>
<feature>wmqJmsClient-2.0</feature>
<feature>mdb-3.2</feature>
<feature>jms-2.0</feature>
</featureManager>
// Get the Factory defined for the alias via JDNI. aliasFactory = aliasObj.getFactory(); // This gets the (Liberty) JNDI path for the connectionFactory // Get the QueueConnectionFactory TopicConnectionFactory tFactory = (TopicConnectionFactory)getConnectionFactory(null,aliasFactory); // <-- This part is working and we get a factory via JNDI lookup to the WAS Liberty
// Define the reply Topic and text for the message to be sent. // Create the TopicConnection and start it. con = tFactory.createTopicConnection(); //<-- This seems to work and goes on con.start(); //<-- Same as above // Create the Session and Publisher TopicSession tSession = con.createTopicSession(false,Session.AUTO_ACKNOWLEDGE); //<-- This (createTopicSession) is what throws an exception. [Some code to prepare the message goes here]
theTopic = tSession.createTopic(aliasObj.getDestination()); // <-- This is the new code we would use to get the topic, but we don't reach this far
javax.jms.JMSException: Could not create a session: javax.resource.spi.ResourceAllocationException: Unable to setup connection at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.allocateConnection(JmsSessionFactoryImpl.java:435) at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.createTopicSession(JmsSessionFactoryImpl.java:178) at xxx.JMSToolsImpl.sendTopicAsync(JMSToolsImpl.java:278) <-- This line is the one marked on the code above
javax.naming.NameNotFoundException: StaffwareTopicConnectionFactory
<!-- Tibco EMS Resource Adapter (Generic) --> <resourceAdapter id="GenericRA" location="${server.config.dir}/lib/tibco/generic-jms-ra-2.0.1.Final.rar" autoStart="true"> </resourceAdapter>
<connectionManager id="tibcoCM"></connectionManager> <connectionFactory connectionManagerRef="tibcoCM" jndiName="jms/TopicConnectionFactory"> <properties.GenericRA JndiParameters="java.naming.provider.url=tcp://tibco.server.address:7222,java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory,java.naming.factory.url.pkgs=com.tibco.tibjms.naming" ConnectionFactory="StaffwareTopicConnectionFactory" LogLevel="FINER" ProviderIntegrationMode="jndi" SupportsXA="true"/> </connectionFactory>
<!-- Tibco EMS Resource Adapter (Generic) -->
<library id="Tibco_Lib"> <fileset dir="${server.config.dir}/lib/tibco" includes="*.jar"/> </library>
<!-- Tibco EMS Resource Adapter (Generic) --> <resourceAdapter id="GenericRA" location="${server.config.dir}/lib/tibco/generic-jms-ra-2.0.1.Final.rar" autoStart="true">
<classloader commonLibraryRef="Tibco_Lib"/>
</resourceAdapter> <connectionManager id="tibcoCM"></connectionManager> <connectionFactory connectionManagerRef="tibcoCM" jndiName="jms/TopicConnectionFactory"> <properties.GenericRA
JndiParameters="java.naming.provider.url=tibjmsnaming://server:port;java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory;java.naming.factory.url.pkgs=com.tibco.tibjms.naming;java.naming.security.principal=anonymous;java.naming.security.credentials=" ConnectionFactory="StaffwareTopicConnectionFactory" LogLevel="FINER" ProviderIntegrationMode="jndi" SupportsXA="false" UserName="anonymous" Password=""/> </connectionFactory>
[INFO ] FFDC1015I: An FFDC Incident has been created: "javax.resource.ResourceException: java.lang.AbstractMethodError: javax/jms/ConnectionFactory.createContext(Ljava/lang/String;Ljava/lang/String;)Ljavax/jms/JMSContext; com.ibm.ejs.j2c.poolmanager.FreePool.createManagedConnectionWithMCWrapper 199" at ffdc_17.10.11_19.06.18.0.log[ERROR ] could not create sessionjava.lang.AbstractMethodError: javax/jms/ConnectionFactory.createContext(Ljava/lang/String;Ljava/lang/String;)Ljavax/jms/JMSContext;[err] 2017-10-11 19:06:19.085 ERROR [, 295862000CAF6617, -, true] 0 --- [cutor-thread-54] .MessagingService.JMSMessagingSubsystem [BKSE04023000548] : Class 'jmsTools': An error occurred in the sendTopicAsync method. Alias = 'WIBCAP_eventLog_Def_Request_JMS' using TopicFactory 'jms/TopicConnectionFactory' and Topic 'T.WIBCAP_RequestTopic'javax.jms.JMSException: Could not create a session: javax.resource.spi.ResourceAllocationException: java.lang.AbstractMethodError: javax/jms/ConnectionFactory.createContext(Ljava/lang/String;Ljava/lang/String;)Ljavax/jms/JMSContext;
at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.allocateConnection(JmsSessionFactoryImpl.java:435) at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.createTopicSession(JmsSessionFactoryImpl.java:178)
at XXX.JMSToolsImpl.sendTopicAsync(JMSToolsImpl.java:278)
JMS defines JMSException as the root class for exceptions thrown by JMS methods. JMSException is a checked exception and catching it provides a generic way of handling all JMS related exceptions. JMSException provides the following information:
• A provider-specific string describing the error - This string is the standard Java exception message, and is available via getMessage().
• A provider-specific string error code
• A reference to another exception - Often a JMS exception will be the result of a lower level problem. If appropriate, this lower level exception can be linked to the JMS exception.
Caused by: javax.jms.InvalidClientIDException: clientId already exists at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:739) at com.tibco.tibjms.TibjmsConnection._setClientIDEx(TibjmsConnection.java:4616) at com.tibco.tibjms.TibjmsConnection.setClientID(TibjmsConnection.java:4552) at org.jboss.resource.adapter.jms.JmsManagedConnection.setup(JmsManagedConnection.java:668) ... 64 more<=================================>Next Linked Exception:<=================================>Exception Message -> clientId already existsjavax.jms.InvalidClientIDException: clientId already exists at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:739) at com.tibco.tibjms.TibjmsConnection._setClientIDEx(TibjmsConnection.java:4616) at com.tibco.tibjms.TibjmsConnection.setClientID(TibjmsConnection.java:4552) at org.jboss.resource.adapter.jms.JmsManagedConnection.setup(JmsManagedConnection.java:668) at org.jboss.resource.adapter.jms.JmsManagedConnection.<init>(JmsManagedConnection.java:189) at org.jboss.resource.adapter.jms.JmsManagedConnectionFactory.createManagedConnection(JmsManagedConnectionFactory.java:109) at com.ibm.ejs.j2c.PoolManager.createParkedConnection(PoolManager.java:6293) at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:3248) at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2335) at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1121) at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:688) at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.allocateConnection(JmsSessionFactoryImpl.java:412) at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.createTopicSession(JmsSessionFactoryImpl.java:178) at com.xxx.JMSToolsImpl.sendTopicAsync(JMSToolsImpl.java:278)
// Get the QueueConnectionFactory TopicConnectionFactory tFactory = (TopicConnectionFactory)getConnectionFactory(null,aliasFactory);
// Define the reply Topic and text for the message to be sent. // Create the TopicConnection and start it. con = tFactory.createTopicConnection();
con.start();
// Create the Session and Publisher TopicSession tSession = con.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
<!-- Tibco EMS Sample connection factory --> <connectionFactory jndiName="jms/TopicConnectionFactory"> <!-- <connectionManager maxPoolSize="50" minPoolSize="1" connectionTimeout="30s" /> -->
<properties.GenericRA JndiParameters="java.naming.provider.url=tibjmsnaming://server:port;java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory;java.naming.factory.url.pkgs=com.tibco.tibjms.naming;java.naming.security.principal=anonymous;java.naming.security.credentials=" ConnectionFactory="StaffwareTopicConnectionFactory"
ClientID="WLPEMSTest" SessionDefaultType="javax.jms.Topic" /> </connectionFactory>
con = createConnection(factory, user, pwd); if (info.getClientID() != null && !info.getClientID().equals(con.getClientID())) { con.setClientID(info.getClientID()); }
if (info.getClientID() != null && info.getClientID().length() > 0 && !info.getClientID().equals(con.getClientID()))
// --- TopicConnectionFactory
public TopicConnection createTopicConnection() throws JMSException { TopicConnection tc = new JmsSessionFactoryImpl(mcf, cm, TOPIC);
if (log.isTraceEnabled()) { log.trace("Created topic connection: " + tc); }
return tc; }
Caused by: java.lang.Error: Unresolved compilation problem: Type mismatch: cannot convert from JmsSessionFactoryImpl to TopicConnection
at org.jboss.resource.adapter.jms.JmsConnectionFactoryImpl.createTopicConnection(JmsConnectionFactoryImpl.java:163) at com.xxxxxx.JMSToolsImpl.sendTopicAsync(JMSToolsImpl.java:275)
Search "class load: javax.jms" (27 hits in 1 file)
C:\Users\xIS02028\git\generic-jms-ra\logs.txt (27 hits)
Line 4751: class load: javax.jms.JMSException from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4752: class load: javax.jms.MessageListener from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4753: class load: javax.jms.Message from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4760: class load: javax.jms.IllegalStateException from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4777: class load: javax.jms.Connection from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4778: class load: javax.jms.XAConnection from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4863: class load: javax.jms.ConnectionFactory from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4872: class load: javax.jms.QueueConnection from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4875: class load: javax.jms.TopicConnection from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4880: class load: javax.jms.XAQueueConnection from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 4883: class load: javax.jms.XATopicConnection from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 6121: class load: javax.jms.JMSConnectionFactoryDefinition from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 6125: class load: javax.jms.JMSDestinationDefinition from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 7405: class load: javax.jms.ConnectionMetaData from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 7425: class load: javax.jms.JMSConnectionFactoryDefinitions from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 7429: class load: javax.jms.JMSDestinationDefinitions from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 7440: class load: javax.jms.TopicConnectionFactory from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 7441: class load: javax.jms.QueueConnectionFactory from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 11349: class load: javax.jms.Session from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 11350: class load: javax.jms.Destination from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 11351: class load: javax.jms.MessageProducer from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 15477: class load: javax.jms.ExceptionListener from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 15480: class load: javax.jms.Queue from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 15481: class load: javax.jms.Topic from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 15632: class load: javax.jms.JMSContext from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 15633: class load: javax.jms.JMSRuntimeException from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar
Line 15634: class load: javax.jms.JMSSecurityRuntimeException from: file:/opt/ibm/wlp/dev/api/spec/com.ibm.ws.javaee.jms.2.0_1.0.13.jar