1 2 3 Previous Next 30 Replies Latest reply on Sep 29, 2011 10:55 AM by dstockdreher

    Creating resources for a resource adapter

    mphillip

      Hi all,

       

      I'm working with a JCA Resource adapter which I have sucessfully deployed on JBoss 6, but am struggling to find how to create resources for it on JBoss 7. 

       

      On JBoss 6 I dropped a resourceAdapter-ds.xml file into the deploy directory along with the resource adaptrer .rar file and the resources it defined were created (I could see log information that it was creating the resources).

       

      On JBoss 7 nothing seems to happen when I drop the -ds.xml file in the deployments directory.

       

      I've tried looking through the documentation, but can't find anything much on deploying resource adapters for v7.  Can anyone point me in the right direction?

       

      Hope you can help.

       

      Martin.

        • 2. Re: Creating resources for a resource adapter
          jesper.pedersen
          1 of 1 people found this helpful
          • 3. Re: Creating resources for a resource adapter
            mphillip

            Those links looks really promising - I'll have a read through it in more detail. 

             

            Can I just confirm that this is implying that the method of defining resources for a JCA RA has changed significantly from JBoss 6? (or have I gotten the wrong end of the stick? )

            • 4. Re: Creating resources for a resource adapter
              jesper.pedersen

              Everything has changed for the better Read my blogs to get a feeling of why.

               

              I put an AS 7 documentation place holder here: https://docs.jboss.org/author/display/AS7/Resource+adapters

              • 5. Re: Creating resources for a resource adapter
                mphillip

                Fantastic, thanks guys!

                • 6. Re: Creating resources for a resource adapter
                  jesper.pedersen

                  If you are looking for unit testing - you can start here or use the AS 7/Arquillian stuff.

                  • 7. Re: Creating resources for a resource adapter
                    mphillip

                    I've managed to get a chunk further, but still not all the way there.

                     

                    From the documentation:

                     

                    5.2.1

                    A resource adapter can be configured using two different ways 

                         META-INF/ironjacamar.xml for internal configuration

                        -ra.xml for external configuration

                     

                    I tried putting a -ra.xml file in the deployments directory along with the RA, but that didn't seem to do anything at all, so I had a bash at editing the standalone.xml file to put the content directly in there.  This seemed to do a lot more.  Perhaps the documentation could be updated to point this out as an option.

                     

                    So, now when the RA tries to deploy it's getting on to trying to create resources, but is failing with the following error.

                     

                     

                    The subsystem definition I'm using is at the bottom.  Any thoughts?

                     

                    I've tried with/without the use-java-context flag

                    I've tried with/without the java: at the start of the jndi-name

                    I'm not even sure if it's these elements that are causing the problem :-)

                     

                     

                     

                     

                    10:11:34,593 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) Starting deployment of "wmq.jmsra.rar"

                    10:11:35,937 INFO  [org.jboss.as.connector.metadata.deployment.ResourceAdapterDeploymentService$AS7RaDeployer] (MSC service thread 1-4) IJ020001: Required license terms for file:/C:/jboss.7.0.0/standalone/tmp/vfs/temp1126829ead023e3e/wmq.jmsra.rar-36ecf3adaa8a6998/contents/

                    10:11:36,343 INFO  [org.jboss.as.connector.metadata.deployment.ResourceAdapterXmlDeploymentService$AS7RaXmlDeployer] (MSC service thread 1-2) IJ020001: Required license terms for file:/C:/jboss.7.0.0/standalone/tmp/vfs/temp1126829ead023e3e/wmq.jmsra.rar-36ecf3adaa8a6998/contents/

                    10:11:36,343 WARN  [org.jboss.as.connector.metadata.deployment.ResourceAdapterXmlDeploymentService$AS7RaXmlDeployer] (MSC service thread 1-2) IJ020004: Only one connection definition found with a mismatch in class-name: javax.jms.ConnectionFactory

                    10:11:36,375 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.raxml."wmq.jmsra": org.jboss.msc.service.StartException in service jboss.raxml."wmq.jmsra": org.jboss.msc.service.StartException in anonymous service: Failed to start RA deployment [wmq.jmsra]

                        at org.jboss.as.connector.metadata.deployment.ResourceAdapterXmlDeploymentService.start(ResourceAdapterXmlDeploymentService.java:106)

                        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)

                        at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)

                        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_25]

                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_25]

                        at java.lang.Thread.run(Thread.java:662) [:1.6.0_25]

                    Caused by: org.jboss.msc.service.StartException in anonymous service: Failed to start RA deployment [wmq.jmsra]

                        at org.jboss.as.connector.metadata.deployment.ResourceAdapterXmlDeploymentService.start(ResourceAdapterXmlDeploymentService.java:98)

                        ... 5 more

                    Caused by: org.jboss.jca.deployers.common.DeployException: IJ020056: Deployment failed: file:/C:/jboss.7.0.0/standalone/tmp/vfs/temp1126829ead023e3e/wmq.jmsra.rar-36ecf3adaa8a6998/contents/

                        at org.jboss.jca.deployers.common.AbstractResourceAdapterDeployer.createObjectsAndInjectValue(AbstractResourceAdapterDeployer.java:1778)

                        at org.jboss.as.connector.metadata.deployment.ResourceAdapterXmlDeploymentService$AS7RaXmlDeployer.doDeploy(ResourceAdapterXmlDeploymentService.java:140)

                        at org.jboss.as.connector.metadata.deployment.ResourceAdapterXmlDeploymentService.start(ResourceAdapterXmlDeploymentService.java:96)

                        ... 5 more

                    Caused by: javax.resource.spi.IllegalStateException: Non-explicit JNDI bindings not supported

                        at org.jboss.as.connector.metadata.deployment.AbstractResourceAdapterDeploymentService$AbstractAS7RaDeployer.bindConnectionFactory(AbstractResourceAdapterDeploymentService.java:216)

                        at org.jboss.jca.deployers.common.AbstractResourceAdapterDeployer.createObjectsAndInjectValue(AbstractResourceAdapterDeployer.java:1586)

                        ... 7 more

                     

                    10:11:36,375 INFO  [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployment of "wmq.jmsra.rar" was rolled back with failure message {"Failed services" => {"jboss.raxml.\"wmq.jmsra\"" => "org.jboss.msc.service.StartException in service jboss.raxml.\"wmq.jmsra\": org.jboss.msc.service.StartException in anonymous service: Failed to start RA deployment [wmq.jmsra]"}}

                    10:11:36,375 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) Service status report

                      Services which failed to start:

                          service jboss.raxml."wmq.jmsra": org.jboss.msc.service.StartException in service jboss.raxml."wmq.jmsra": org.jboss.msc.service.StartException in anonymous service: Failed to start RA deployment [wmq.jmsra]

                     

                    10:11:36,375 ERROR [org.jboss.as.deployment] (DeploymentScanner-threads - 1) {"Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"Failed services" => {"jboss.raxml.\"wmq.jmsra\"" => "org.jboss.msc.service.StartException in service jboss.raxml.\"wmq.jmsra\": org.jboss.msc.service.StartException in anonymous service: Failed to start RA deployment [wmq.jmsra]"}}}}

                    10:11:37,578 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) Stopped deployment wmq.jmsra.rar in 1206ms

                     

                     

                     

                        <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0">
                            <resource-adapters>
                               <resource-adapter>
                                  <archive>wmq.jmsra.rar</archive>

                     

                                  <config-property name="traceEnabled">false</config-property>
                                  <config-property name="traceLevel">3</config-property>
                                  <config-property name="reconnectionRetryInterval">300000</config-property>
                                  <config-property name="reconnectionRetryCount">5</config-property>

                     

                                  <transaction-support>XATransaction</transaction-support>

                     

                                  <connection-definitions>
                                     <connection-definition class-name="javax.jms.ConnectionFactory"
                                                            jndi-name="java:jms/ivt/IVTCF"
                                                            pool-name="wmq.jmsra"
                                                            use-java-context="false">

                     

                                        <config-property name="queueManager">ExampleQM</config-property>
                                        <config-property name="channel">SYSTEM.DEF.SVRCONN</config-property>
                                        <config-property name="transportType">CLIENT</config-property>
                                        <config-property name="hostName">localhost</config-property>
                                        <config-property name="port">1414</config-property>

                     

                                        <xa-pool>
                                           <!-- MQ does not support connection interleaving -->
                                           <interleaving>false</interleaving>
                                        </xa-pool>
                                        <security>
                                           <application/>
                                        </security>
                                     </connection-definition>
                                  </connection-definitions>
                               </resource-adapter>
                            </resource-adapters>

                     

                        </subsystem>
                    • 8. Re: Creating resources for a resource adapter
                      jesper.pedersen

                      -ra.xml deployments is only for IronJacamar/Standalone.

                       

                      See http://https://docs.jboss.org/author/display/AS7/Resource+adapters for deployments in AS 7.

                       

                      Try

                       

                      <connection-definition class-name="com.mycompany.myproject.MyMCF"
                                                          jndi-name="java:jboss/jms/ivt/IVTCF"
                                                          pool-name="wmq.jmsra">
                      

                       

                      The class name needs to be the MCF and jndi-name should start with java:jboss/.

                      • 9. Re: Creating resources for a resource adapter
                        mphillip

                        OK, I've tried that, and a few others, and seem to be getting the same error with all of them

                         

                        jndi-name="java:/IVTCF"

                        jndi-name="java:jboss"

                        jndi-name="java:jboss/IVTCF"

                        jndi-name="java:jboss/jms/ivt/IVTCF"

                        jndi-name="java:/eis/AcmeConnectionFactory"

                         

                        Between changes I stop the server, make the change, then restart, then delete the '.failed' file under deployments to get it to attempt a deployment. (I wasn't sure if changes to standaline.xml would be dynamic, so erred on the safe side)

                         

                         

                        Can I double check what you mean by MCF?  Managed Connection Factory?

                        I'm a bit surprised that someone configuring a connection factory needs to define the implementation class rather than just the Interface class, as the interface and implementation are mapped together in the ra.xml of the resource adapter.

                        • 10. Re: Creating resources for a resource adapter
                          jesper.pedersen

                          Yes, the ManagedConnectionFactory needs to be in the class-name. If you leave class-name out (and the .rar only has one MCF) the deployer should find it automaitically.

                           

                          Multiple MCF implementations can map to the same CF interface...

                          • 11. Re: Creating resources for a resource adapter
                            mphillip

                            Okey dokey - I can manage that.  Any thoughts on the continued bindings problem?

                             

                            I've tried all of the following unsucessfully

                             

                            jndi-name="java:/IVTCF"

                            jndi-name="java:jboss"

                            jndi-name="java:jboss/IVTCF"

                            jndi-name="java:jboss/jms/ivt/IVTCF"

                            jndi-name="java:/eis/AcmeConnectionFactory"


                            javax.resource.spi.IllegalStateException: Non-explicit JNDI bindings not supported

                             

                             

                             

                            Could it be being caused by any of the other properties that are specified for the RA?

                            • 12. Re: Creating resources for a resource adapter
                              jesper.pedersen

                              I have resolved https://issues.jboss.org/browse/JBJCA-640 which should give a better exception once integrated.

                              • 13. Re: Creating resources for a resource adapter
                                dstockdreher

                                So for the time being  one should just have to replace the ironJacamar implementation in AS 7 final with the 1.0.2 Final version in order to get a better error message, or should the configuration above be valid in that case?

                                • 14. Re: Creating resources for a resource adapter
                                  jaikiran

                                  AS 7.0.1 has been released http://www.jboss.org/jbossas/downloads.html which already has 1.0.3 version of IronJacamar. So give it a try on 7.0.1

                                  1 2 3 Previous Next