1 Reply Latest reply on Feb 10, 2016 10:10 AM by Luiz Almeida

    javax.naming.NameNotFoundException: Name not found

    Rama Krishna Sarraju Newbie

      Hi ,

       

      I have integrated JBoss 5.1.0-GA and Tibco EMS(Remote) on SSL as per the TibcoIntegration Document. After completing all the required configs, I am getting the following exception when I deploy my ear (which contains a MDB).

       

      All the configuration is given below , can someone please tell me what is going wrong here:

       

      Exception:

       

      2010-04-22 13:14:48,574 INFO  [org.jboss.resource.adapter.jms.inflow.JmsActivation] (WorkManager(2)-2) Attempting to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@4b91e7(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@1a6463c destination=myremote.queue.incoming destinationType=javax.jms.Queue tx=true durable=false reconnect=10 provider=java:/TibcoJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=false)
      2010-04-22 13:14:48,677 ERROR [org.jboss.resource.adapter.jms.inflow.JmsActivation] (WorkManager(2)-2) Unable to reconnect org.jboss.resource.adapter.jms.inflow.JmsActivationSpec@4b91e7(ra=org.jboss.resource.adapter.jms.JmsResourceAdapter@1a6463c destination=myremote.queue.incoming destinationType=javax.jms.Queue tx=true durable=false reconnect=10 provider=java:/TibcoJMSProvider user=null maxMessages=1 minSession=1 maxSession=15 keepAlive=60000 useDLQ=false)
      javax.naming.NameNotFoundException: Name not found: 'SSLXAQueueConnectionFactory'
              at com.tibco.tibjms.naming.TibjmsContext.lookup(TibjmsContext.java:736)
              at com.tibco.tibjms.naming.TibjmsContext.lookup(TibjmsContext.java:516)
              at javax.naming.InitialContext.lookup(InitialContext.java:392)
              at org.jboss.util.naming.Util.lookup(Util.java:222)
              at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupQueueConnection(JmsActivation.java:525)
              at org.jboss.resource.adapter.jms.inflow.JmsActivation.setupConnection(JmsActivation.java:506)
              at org.jboss.resource.adapter.jms.inflow.JmsActivation.setup(JmsActivation.java:353)
              at org.jboss.resource.adapter.jms.inflow.JmsActivation.handleFailure(JmsActivation.java:292)
              at org.jboss.resource.adapter.jms.inflow.JmsActivation$SetupActivation.run(JmsActivation.java:733)
              at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
              at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
              at java.lang.Thread.run(Thread.java:619)

       

      jboss/server/default/deploy/messaging/tibco-jms-ds.xml:

       

       

      <!-- =================== TIBCO EMS JMS provider loader ================== -->

      <connection-factories>

        <mbean code="org.jboss.jms.jndi.JMSProviderLoader" name=":service=JMSProviderLoader,name=TibjmsProvider">

          <attribute name="ProviderName">TibcoJMSProvider</attribute>

          <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>

          <attribute name="QueueFactoryRef">SSLXAQueueConnectionFactory</attribute>

          <attribute name="TopicFactoryRef">XATopicConnectionFactory</attribute>

          <attribute name="Properties">

             java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory

             java.naming.provider.url=tibjmsnaming://tibco-ems-server:7222

             java.naming.factory.url.pkgs=com.tibco.tibjms.naming

          </attribute>

          <!-- attribute name="ProviderUrl">tibjmsnaming://tibco-ems-server:7222</attribute -->

        </mbean>

       

        <!-- Redirect QueueConnectionFactory to TIBCO Enterprise Message Service -->

       

        <mbean code="org.jboss.naming.NamingAlias" name="DefaultDomain:service=NamingAlias,fromName=SSLXAQueueConnectionFactory">

          <attribute name="ToName">tibjmsnaming://tibco-ems-server:7222/SSLXAQueueConnectionFactory</attribute>

          <attribute name="FromName">SSLXAQueueConnectionFactory</attribute>

        </mbean>

       

       

        <mbean code="org.jboss.naming.NamingAlias" name="DefaultDomain:service=NamingAlias,fromName=ConnectionFactory">

          <attribute name="ToName">tibjmsnaming://tibco-ems-server:7222/SSLXAQueueConnectionFactory</attribute>

          <attribute name="FromName">ConnectionFactory</attribute>

        </mbean>

       

        <tx-connection-factory>

          <jndi-name>JmsXA</jndi-name>

          <xa-transaction></xa-transaction>

          <rar-name>jms-ra.rar</rar-name>

          <connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>

          <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Queue</config-property>

          <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/TibcoJMSProvider</config-property>

          <max-pool-size>20</max-pool-size>

          <security-domain-and-application>JmsXARealm</security-domain-and-application>

      <!--
              <config-property name="UserName" type="java.lang.String">user</config-property>
              <config-property name="Password" type="java.lang.String">password</config-property>
      -->
        </tx-connection-factory>
      </connection-factories>
      <!-- ==================================================================== -->

       

      jboss/server/default/conf/jndi.properties:

       

       

      java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

      java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces:com.tibco.tibjms.naming

      com.tibco.tibjms.naming.security_protocol=ssl

      com.tibco.tibjms.naming.ssl_enable_verify_host=false

      com.tibco.tibjms.naming.ssl_enable_verify_host_name=false

      com.tibco.tibjms.naming.ssl_vendor=j2se-default

      com.tibco.tibjms.naming.ssl_trusted_certificate=my.pem

      com.tibco.tibjms.naming.ssl_identity=my.p12

      com.tibco.tibjms.naming.ssl_password=password

      com.tibco.tibjms.naming.ssl_trace=false

      com.tibco.tibjms.naming.ssl_debug_trace=false


      Annotations used in MDB:
      @MessageDriven(activationConfig =
      {
      @ActivationConfigProperty (propertyName="destinationType", propertyValue="javax.jms.Queue"),
      @ActivationConfigProperty (propertyName="destination", propertyValue="myremote.queue.incoming"),
      @ActivationConfigProperty (propertyName="useDLQ", propertyValue="false"),
      @ActivationConfigProperty(
                          propertyName="providerAdapterJNDI",
                          propertyValue="java:/TibcoJMSProvider")

      })
      MDB/META-INF/jboss.xml:
      <?xml version="1.0" encoding="utf-8"?>
                                  http://www.jboss.org/j2ee/schema/jboss_5_0.xsd" version="3.0">
      <resource-managers>
      <resource-manager>
      <res-name>queuefactoryref</res-name>
      <res-jndi-name>java:/JmsXA</res-jndi-name>
      </resource-manager>
      </resource-managers>
      <enterprise-beans>
      <message-driven>
      <ejb-name>MyMDB</ejb-name>
      <destination-jndi-name>myremote.queue.incoming</destination-jndi-name>
      <resource-ref>
      <res-ref-name>jms/QCF</res-ref-name>
      <res-type>javax.jms.QueueConnectionFactory</res-type>
      <resource-name>queuefactoryref</resource-name>
      </resource-ref>
      </message-driven>
      </enterprise-beans>
      </jboss>
      MDB/META-INF/ejb-jar.xml:
      <?xml version="1.0" encoding="UTF-8"?>
                                  http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"    version="3.0">
      <description>EJB Module</description>
      <display-name>EJB Module</display-name>
      <enterprise-beans>
      <message-driven>
      <ejb-name>MyMDB</ejb-name>
      <message-destination-type>javax.jms.Queue</message-destination-type>
      <message-destination-link>myremote.queue.incoming</message-destination-link>
      <resource-ref>
      <res-ref-name>jms/QCF</res-ref-name>
      <res-type>javax.jms.QueueConnectionFactory</res-type>
      <resource-name>queuefactoryref</resource-name>
      </resource-ref>
                      <resource-env-ref>
                              <resource-env-ref-name>myremote.queue.incoming</resource-env-ref-name>
                              <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
                      </resource-env-ref>
      </message-driven>
      </enterprise-beans>
      <assembly-descriptor>
      </assembly-descriptor>
      </ejb-jar>
      jboss/server/default/conf/standardjboss.xml:
          <invoker-proxy-binding>
            <name>message-driven-bean</name>
            <invoker-mbean>default</invoker-mbean>
            <proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
            <proxy-factory-config>
              <JMSProviderAdapterJNDI>TibcoJMSProvider</JMSProviderAdapterJNDI>
              <ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
              <CreateJBossMQDestination>false</CreateJBossMQDestination>
              <!-- WARN: Don't set this to zero until a bug in the pooled executor is fixed -->
              <MinimumSize>1</MinimumSize>
              <MaximumSize>15</MaximumSize>
              <KeepAliveMillis>30000</KeepAliveMillis>
              <MaxMessages>1</MaxMessages>
            </proxy-factory-config>
          </invoker-proxy-binding>

          <invoker-proxy-binding>
            <name>message-driven-bean</name>
            <invoker-mbean>default</invoker-mbean>
            <proxy-factory>org.jboss.ejb.plugins.inflow.JBossJMSMessageEndpointFactory</proxy-factory>
            <proxy-factory-config>
              <activation-config>
                 <activation-config-property>
                    <activation-config-property-name>providerAdapterJNDI</activation-config-property-name>
                    <activation-config-property-value>TibcoJMSProvider</activation-config-property-value>
      .......

          <invoker-proxy-binding>
            <name>singleton-message-driven-bean</name>
            <invoker-mbean>default</invoker-mbean>
            <proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
            <proxy-factory-config>
              <JMSProviderAdapterJNDI>TibcoJMSProvider</JMSProviderAdapterJNDI>
              <ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
              <CreateJBossMQDestination>false</CreateJBossMQDestination>
              <!-- WARN: Don't set this to zero until a bug in the pooled executor is fixed -->
              <MinimumSize>1</MinimumSize>
              <MaximumSize>1</MaximumSize>
              <KeepAliveMillis>30000</KeepAliveMillis>
              <MaxMessages>1</MaxMessages>
            </proxy-factory-config>
          </invoker-proxy-binding>

          <invoker-proxy-binding>
            <name>jms-message-inflow-driven-bean</name>
            <invoker-mbean>default</invoker-mbean>
            <proxy-factory>org.jboss.ejb.plugins.inflow.JBossJMSMessageEndpointFactory</proxy-factory>
            <proxy-factory-config>
              <activation-config>
                 <activation-config-property>
                    <activation-config-property-name>providerAdapterJNDI</activation-config-property-name>
                    <activation-config-property-value>TibcoJMSProvider</activation-config-property-value>
                 </activation-config-property>
      .....