David, This time, it did work. Thank's a lot for your dedication. I was not familiar with <resource-ref> and <resource-env-ref> (I don't use them with JBoss, WebLo or WebSphere), and I really messed a lot.
Thanks again, Jean-Noel >On Mar 15, 2006, at 12:55 AM, johnxmas wrote: > >>> On Mar 14, 2006, at 7:58 AM, johnxmas wrote: >>> >>>> Hi List, >>>> >>>> I have a Resource Adapter (both inbound and outbound) and an >>>> MDB. When the MBD is called, it tries to use the oubound part of >>>> the RA, looking up >>>> for the ConnectionFactory, the InteractionSpec and the >>>> ConnectionSpec (the two laters >>>> having been deployead as admin objects) >>>> >>>> My questions: >>>> >>>> a) how are the jndi-names of this three objects declared in >>>> geronimo-ra.xml >>> >>> We don't have global jndi context, so the jndi names you can use are >>> really determined by the ejb-jar.xml + openejb-jar.xml. The name you >>> specify in the geronimo-ra.xml for the admin object also has >>> something to do with it :-) >> >> Here is my geronimo-ra.xml >> >> <?xml version="1.0" encoding="UTF-8"?> >> >> >> <connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector" >> configId="ScortJcaAdapter15" >> version="1.5"> >> >> <resourceadapter> >> >> <resourceadapter-instance> >> <resourceadapter-name>ScortJcaAdapter15</resourceadapter-name> >> <workmanager> >> <gbean-link>DefaultWorkManager</gbean-link> >> </workmanager> >> </resourceadapter-instance> >> >> <outbound-resourceadapter> >> <connection-definition> >> <connectionfactory- >> interface>javax.resource.cci.ConnectionFactory</connectionfactory- >> interface> >> <connectiondefinition-instance> >> <name>demoInbound.managedConnectionFactory</name> >> <implemented- >> interface>com.scort.ctg.cics.eci.jca.EciConnectionFactory</ >> implemented-interface> >> <connectionmanager> >> <xa-transaction> >> <transaction-caching/> >> </xa-transaction> >> <single-pool> >> <max-size>10</max-size> >> <blocking-timeout-milliseconds>5000</blocking-timeout- >> milliseconds> >> <match-one/> >> </single-pool> >> </connectionmanager> >> </connectiondefinition-instance> >> </connection-definition> >> </outbound-resourceadapter> >> >> >> </resourceadapter> >> >> <adminobject> >> <adminobject- >> interface>com.scort.ctg.cics.eci.jca.EciConnectionSpecInterface</ >> adminobject-interface> >> <adminobject- >> class>com.scort.ctg.cics.eci.jca.EciConnectionSpec</adminobject-class> >> <adminobject-instance> >> <message-destination-name>demoInbound.CS</message- >> destination-name> >> <config-property-setting name="userName">aa</config- >> property-setting> >> <config-property-setting name="password">aa</config- >> property-setting> >> </adminobject-instance> >> </adminobject> >> >> <adminobject> >> <adminobject- >> interface>com.scort.ctg.cics.eci.jca.EciInteractionSpecInterface</ >> adminobject-interface> >> <adminobject- >> class>com.scort.ctg.cics.eci.jca.EciInteractionSpec</adminobject- >> class> >> <adminobject-instance> >> <message-destination-name>demoInbound.IS</message- >> destination-name> >> <config-property-setting name="commareaLength">20000</ >> config-property-setting> >> <config-property-setting name="compactOutgoingData">true</ >> config-property-setting> >> <config-property-setting name="dumpCodePage">cp037</config- >> property-setting> >> <config-property-setting name="executionTimeout">10000</ >> config-property-setting> >> <config-property-setting name="mode">1</config-property- >> setting> >> </adminobject-instance> >> </adminobject> >> >> </connector> >> >> >> >>>> >>>> b) must my MDB have a resource-ref entry on these objects ? >>> >>> It needs a resource-ref for the connection factory and a resource- >>> env- >>> ref for each of the InteractionSpec and ConnectionSpecs. We've added >>> a resource-env-link element that may be helpful to shorten the >>> openejb-jar.xml entry you will need, but I think it only works within >>> an ear, so you may well have to specify the target admin object >>> fully. >> >> BTW, my MDB is deployed as an ear >> >> Here are my ebj-jar.xml and openejb-jar.xml >> >> <?xml version="1.0" encoding="UTF-8"?> >> >> <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee >> http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" >> version="2.1"> >> >> <enterprise-beans> >> <message-driven> >> <ejb-name>ScortInboundCustListMdb</ejb-name> >> <ejb- >> class>com.scort.inbound.test.custlist.GeronimoInboundCustListMdb</ >> ejb-class> >> <messaging-type>com.scort.inbound.jca.api.InboundListener</ >> messaging-type> >> <transaction-type>Container</transaction-type> >> >> <activation-config> >> <activation-config-property> >> <activation-config-property-name>id</activation-config- >> property-name> >> <activation-config-property-value>CUSTLIST</activation- >> config-property-value> >> </activation-config-property> >> <activation-config-property> >> <activation-config-property-name>port</activation-config- >> property-name> >> <activation-config-property-value>23072</activation- >> config-property-value> >> </activation-config-property> >> </activation-config> >> > > >>>>>>>>>>>>>>>>>>>>>>> >In here, you need the resource-ref for the outbound adapter and >resource-env-refs for the admin objects. > >>>>>>>>>>>>>>>>>>>>>>> >> </message-driven> >> </enterprise-beans> >> >> <assembly-descriptor> >> <container-transaction> >> <method> >> <ejb-name>ScortInboundCustListMdb</ejb-name> >> <method-name>*</method-name> >> </method> >> <trans-attribute>NotSupported</trans-attribute> >> </container-transaction> >> </assembly-descriptor> >> >> </ejb-jar> >> >> >> <openejb-jar >> xmlns="http://www.openejb.org/xml/ns/openejb-jar" >> xmlns:naming="http://geronimo.apache.org/xml/ns/naming" >> xmlns:security="http://geronimo.apache.org/xml/ns/security" >> xmlns:sys="http://geronimo.apache.org/xml/ns/deployment" >> configId="ScortInboundCustListMdb" >> parentId="ScortInboundCustListMessageDrivenBean"> >> <enterprise-beans> >> <message-driven> >> <ejb-name>ScortInboundCustListMdb</ejb-name> >> <!-- >> <resource-adapter> >> <target- >> name>geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCAResou >> rce=ScortJcaAdapter15,j2eeType=JCAResourceAdapter,name=ScortJcaAdapter >> 15</target-name> >> </resource-adapter> >> --> >> <resource-adapter> >> <resource-link>ScortJcaAdapter15</resource-link> >> </resource-adapter> >> <activation-config> >> <activation-config-property> >> <activation-config-property-name>id</activation-config- >> property-name> >> <activation-config-property-value>CUSTLIST</activation- >> config-property-value> >> </activation-config-property> >> <activation-config-property> >> <activation-config-property-name>port</activation-config- >> property-name> >> <activation-config-property-value>23072</activation-config- >> property-value> >> </activation-config-property> >> </activation-config> >> >> <resource-ref> >> <ref-name>demoInbound.managedConnectionFactory</ref-name> >> <resource-link>demoInbound.managedConnectionFactory</ >> resource-link> >> </resource-ref> >> <resource-env-ref> >> <ref-name>demoInbound.IS</ref-name> >> <message-destination-link>demoInbound.IS</message-destination- >> link> >> </resource-env-ref> >> </resource-env-ref> >> >> </message-driven> >> </enterprise-beans> >> >> </openejb-jar> >> >> Is that correct ? >> >> I tried looking up an adminobject (the InteractionSpec) using as >> names "demoInBound.IS", >> "java:demoInbound.IS", "java:comp/demoInbound.IS", "java:comp/env/ >> demoInbound.IS". >> No way: NameNotFoundException. >> >> I tried listing the JNDI >> >> context.listBindings(""); >> >> only shows >> JMXConnector: >> javax.management.remote.rmi.RMIServerImpl_Stub:javax.manageme >> nt.remote.rmi.RMIServerImpl_Stub[RemoteStub [ref: [endpoint: >> [10.1.10.53:1843](re >> mote),objID:[0]]]] >> >> and context.listBindings("java:") does not show anything >> >> >>> AFAIK no one has tried using admin objects for anything but jms >>> destinations before. >> >> AdminObject are for me a precious features of JCA 1.5, allowing to >> deploy InteractionSpec >> and ConnectionSpec in the RA and saving a lot of further class >> loaders problems.... > >It's a good idea, I just never thought of it :-) >> >> As regards the INBOUND part, I do regret that it seems for most >> people only to deal with >> JMS (try googling !). My Ra needs to be INBOUND and does not do JMS > >That should definitely work fine, there is nothing jms specific about >the geronimo connector implementation. >> >>> I think that when you look up an admin object >>> in jndi you get a proxy to the actual object: this may cause problems >>> with your objects. Please let us know what happens, we may need to >>> make some changes in exactly what we are returning. >> >> I will let you know with great pleasure, as soon as I will succeed, >> which I'm beginnig to doubt >> (after lot of deployment troubles, see further mails, now JNDI >> problems !) :-D > >I think adding the missing bits to your spec dd for resource-ref and >resource-env-ref should fix that. > >thanks >david jencks > >> >> Thanks >> Jean-Noël
