Hi,
thanks for sharing this.
Andreas
On Mar 18, 2009, at 4:37 AM, lyall wrote:
Got it working.
Procedure, as follows :-
In order to have Apache ActiveMQ as a valid JMS target, the
following steps
need to be done.
I have taken the Resource Adapter archive from an ActiveMQ
installation
lib\optional\activemq-rar-5.2.0.rar
This is the activeMQ resource adapter archive - for client as well as
embedded server. Personally, I don't think we need to include all
this if we
just want a client, only if we want an embedded server. Still, it
worked,
time to fine tune later.
I Created a directory on the Oracle_SOA VM called e:\activemq-
rar-5.2.0\
which contains the extracted content of the activemq-rar-5.2.0.rar
archive
(and contrary to file suffix, it is a jar archive, you don't need
winrar to
unpack it).
Placed the following XML segment
<shared-library name="apache.jmsprovider.mq" version="5.2.0">
<code-source path="e:\activemq-rar-5.2.0\activation-1.1.jar"/>
<code-source path="e:\activemq-rar-5.2.0\activeio-core-3.1.0.jar"/>
<code-source path="e:\activemq-rar-5.2.0\activemq-core-5.2.0.jar"/>
<code-source path="e:\activemq-rar-5.2.0\activemq-ra-5.2.0.jar"/>
<code-source
path="e:\activemq-rar-5.2.0\backport-util-concurrent-2.1.jar"/>
<code-source path="e:\activemq-rar-5.2.0\broker-config.xml"/>
<code-source path="e:\activemq-rar-5.2.0\camel-core-1.5.0.jar"/>
<code-source path="e:\activemq-rar-5.2.0\derby-10.1.3.1.jar"/>
<code-source
path="e:\activemq-rar-5.2.0\geronimo-j2ee-
management_1.0_spec-1.0.jar"/>
<code-source path="e:\activemq-rar-5.2.0\jaxb-api-2.0.jar"/>
<code-source path="e:\activemq-rar-5.2.0\jaxb-impl-2.0.3.jar"/>
<code-source path="e:\activemq-rar-5.2.0\jsr173_api-1.0.jar"/>
<code-source path="e:\activemq-rar-5.2.0\log4j-1.2.14.jar"/>
<code-source path="e:\activemq-rar-5.2.0\xbean-spring-3.4.jar"/>
<import-shared-library name="apache.commons.logging"/>
</shared-library>
into e:\SOASuite10131\j2ee\home\config\server.xml
(there where about 7 server.xml files on the machine, this appeared
to be
the appropriate one)
I then edited E:\SOASuite10131\j2ee\home\config\application.xml
changing
<orion-application>
...
<imported-shared-libraries>
<import-shared-library name="adf.oracle.domain"/>
</imported-shared-libraries>
to
<orion-application>
...
<imported-shared-libraries>
<import-shared-library name="adf.oracle.domain"/>
<import-shared-library name="apache.jmsprovider.mq"/>
</imported-shared-libraries>
I then added
<connector-factory location="eis/activemq/Queue" connector-name="Jms
Adapter">
<config-property name="connectionFactoryLocation"
value="org.apache.activemq.ActiveMQConnectionFactory"/>
<config-property name="factoryProperties"
value="BrokerURL=tcp://<xxx.xxx.xxx.xxx>:61616"/>
<config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/>
<config-property name="isTopic" value="false"/>
<config-property name="isTransacted" value="true"/>
<config-property name="username" value="system"/>
<config-property name="password" value="manager"/>
<connection-pooling use="none">
</connection-pooling>
<security-config use="none">
</security-config>
</connector-factory>
as the last entry in
E:\SOASuite10131\j2ee\home\application-deployments\default\JmsAdapter
\oc4j-ra.xml.
I obtained the username/passwords from an activeMQ instance
c:\apache-activemq-5.2.0conf\credentials.properties file. Once
again, not
sure if needed.
It should be noted, that according to the ActiveMQ Resource Adapter
Documenation, the BrokerURL property is optional, but I have coded
it to
point to our running ActiveMQ broker, for the sake of a quiet life
(which I
never seem to have).
Once the above steps had been done, it is possible to create a JMS
Partner
link in JDeveloper, entirely using the GUI tools
Procedure as follows :-
Create a Synchronous BPEL application using the JDeveloper
Create a partner link for ActiveMQ of type JMS Adapter
Wizard settings as follows :-
Page 1
* Third Party
Page 2
* Factory Properties - Set the following properties - ALL of these are
optional, really, so long as you set ONE of them or you won't be
able to
proceed to the next page. Maybe username/password you will be ok (the
defaults are set in the Application Server, as per the instructions
above -
still, I figure it's best to specify everything, thus, making the
defaults
superfluous)
NOTE: A bug in the Adapter configuration wizard will not parse the
factoryProperties=BrokerURL=tcp://ip.add.res.ss:port part correctly,
on
subsequent passes through the wizard. You will need to re-enter that
property.
*
connectionFactoryLocation
=org.apache.activemq.ActiveMQConnectionFactory
* factoryProperties=BrokerURL=tcp://<xxx.xxx.xxx.xxx>:61616
* isTopic=false
* isTransacted=true
* username=system (found in credentials.properties of ActiveMQ
installation - optional)
* password=manager (found in credentials.properties of ActiveMQ
installation
- optional)
* acknowledgeMode=AUTO_ACKNOWLEDGE
* JMS Connection Factory = ConnectionFactory
* Transacted = true
* Desintation Type = Queue
* User Name = blank
* Password = blank
* JMS Connection JNDI Name = eis/activemq/Queue (corresponds to
install
instructions, above)
Page 3
* Operation Type = Produce Message
* Operation Name = Produce_Message
Page 4
* Destination Name = target ActiveMQ Queue - say Testing.Queue
* Message Body Type = TextMessage
* Delivery Mode = Persistent
* Priority = Default
* TimeToLive = 0
Page 5
* Choose a WSDL that reflects the message type expected - in my test
case, I
simply chose the incoming message WSDL
Setup the Invoke step
* Populate the Input and Output variables appropriately, using an
assign
Deploy
Test
Check the queue in http://<xxx.xxx.xxx.xxx>:8161/admin/queues.jsp to
see if
your message has arrived.
--
View this message in context:
http://www.nabble.com/Oracle-BPEL-%3C-%3E-ActiveMQ---Howto--tp22449017p22572359.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
---
Mit freundlichen Grüssen - Kind Regards
Andreas Gies
Principal Consultant
Open Source Center of Competence
Progress Software GmbH
Agrippinawerft 26
50678 Köln
E-Mail ag...@progress.com
Direct Line +49 (0)9953 980349
Mobile +49 (0)170 5759611
Skype +44 (0)20 3239 2922
Skype +353 (0)1 443 4971
Skype +1 (0)781 262 0168
http://www.progress.com
http://fusesource.com
http://open-source-adventures.blogspot.com
-------------------------------------------------------
Progress Software GmbH
Sitz der Gesellschaft: Agrippinawerft 26, 50678 Koeln;
Niederlassung: Fuerstenrieder Str. 279, 81377 Muenchen
Amtsgericht Koeln, HRB 15620;
Geschaeftsfuehrung: David Ireland
-------------------------------------------------------