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
-------------------------------------------------------

Reply via email to