You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by kneumei <kn...@gmail.com> on 2011/01/14 23:46:22 UTC

Failover protocol using genericra in glassfish

Hi,
I'm attempting to use activemq in glassfish using the genericra resource
adapter provided with glassfish 2.1. I have found a few pages with helpful
information including
http://activemq.apache.org/sjsas-with-genericjmsra.html.

I have actually had success and been able to get MDBs to use activemq as
their JMS provider, but I'm running into an issue as I'm trying to do some
more complicated configuration. I want to set up a master-slave
configuration, which would require my clients to use a brokerURL of
failover:(tcp://broker1:61616,tcp://broker2:61616). In order to do this, I
set the following property when calling asadmin
create-resource-adapter-config (I have to escape '=' and ':'):

ConnectionFactoryProperties=brokerURL\=failover\:(tcp\://127.0.0.1\:61616,tcp://127.0.0.1\:61617)

However, I am now getting a StringIndexOutOfBoundsException when my
application starts up. I suspect the comma in between the two URLs is the
culprit, since this works fine:

brokerURL\=failover\:(tcp\://127.0.0.1\:61616)

Just wondering if anyone has dealt with this issue before. Also wondering if
there is a better way to integrate with glassfish than using the generic
resource adapter.
-- 
View this message in context: http://activemq.2283324.n4.nabble.com/Failover-protocol-using-genericra-in-glassfish-tp3218504p3218504.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Failover protocol using genericra in glassfish

Posted by kneumei <kn...@gmail.com>.
I ended up switching to use the resource adapter provided by activemq that
comes in the lib/optional directory.

In case anyone is interested, here are the steps I followed to get it
working

asadmin create-resource-adapter-config --property
ServerUrl=failover\:(tcp\://localhost\:61616,tcp\://localhost\:61617)
activemqra

asadmin deploy --name activemqra <path to activemq-rar-5.4.2.rar>

Then to create resources:

asadmin create-connector-connection-pool --raname --connectiondefinition
javax.jms.ConnectionFactory --transactionsupport XATransaction
jms/MyQueueFactoryPool

asadmin create-connector-resource --poolname jms/MyQueueFactoryPool
jms/MyQueueQFactory

asadmin create-admin-object --raname activemqra --restype javax.jms.Queue
--property PhysicalName=MyQueue jms/MyQueue

To get an mdb hooked up, I had to add this in the sun-ejb-jar.xml

<mdb-resource-adapter>
                <resource-adapter-mid>activemqra</resource-adapter-mid>
                <activation-config>
                    <activation-config-property>
                        <activation-config-property-name>DestinationType
                        </activation-config-property-name>
                        <activation-config-property-value>javax.jms.Queue
                        </activation-config-property-value>
                    </activation-config-property>
                    <activation-config-property>
                        <activation-config-property-name>destination
                        </activation-config-property-name>
                        <activation-config-property-value>MyQueue
                        </activation-config-property-value>
                    </activation-config-property>
                </activation-config>
            </mdb-resource-adapter>

To hook this up to a spring JMSTemplate:

<bean id="ConFac" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName">
            <value>jms/MyQueueQQFactory</value>
        </property>
        <property name="resourceRef">
            <value>true</value>
        </property>
    </bean>
    <bean id="myqueue"
class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName">
            <value>jms/MyQueue</value>
        </property>
        <property name="resourceRef">
            <value>true</value>
        </property>
    </bean>
    <bean id="mdbTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="conFac" />
        <property name="defaultDestination" ref="myqueue" />
    </bean>
-- 
View this message in context: http://activemq.2283324.n4.nabble.com/Failover-protocol-using-genericra-in-glassfish-tp3218504p3223986.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.