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

Reply via email to