Spring-JMS integration with BlazeDS

I've seen a number of articles that discuss integrating Spring with BlazeDS, but these all seem to focus on integrations related to RPC-type calls via RemoteObject. Has anyone had success configuring BlazeDS to proxy messages from a JMS broker using a connection factory and a destination defined in the Spring context? I am unclear how to go about configuring a BlazeDS messaging destination in this manner. Any guidance would be appreciated. Thanks in advance.
Jim

There is a JMSAdapter in BlazeDS that you can use for JMS integration. Please check out BlazeDS documentation.

Similar Messages

  • Using WebLogic JMS Wrappers with Spring

    Hi,
    I was just wondering if anyone used WebLogic JMS wrappers with Spring?
    I am using WebLogic configured to have Sonic as my Foreign JNDI Provider. Weblogic provide me with specific entries on the admin console to set information such as the JNDI name of the Sonic Connection Factory. If I specify this JNDI name in the Spring config, and call getConnection() then I will get back a new connection each time.
    I don't want this, I want to cache the connection (as connections are expensive in Sonic). This is where the WebLogic JMS wrappers come in, they can handle the pooling for me but the only way I can see to use them is via a resource-ref. It is possible for Spring to get a handle onto these wrappers or should I use Spring's own pooling mechanism instead?
    P.S. I've also asked this question on the Spring forum
    Thanks for any help
    Mandy

    Maybe you have already tried the following:
    <beans xmlns:jee="http://www.springframework.org/schema/jee" ... >
    <jee:jndi-lookup id="connectionFactory" jndi-name="jms.ConnectionFactory">
    <jee:environment>
    java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
    java.naming.provider.url=t3://localhost:7001
    </jee:environment>
    </jee:jndi-lookup>
    </beans>
    an alternative is to use the JNDI template
    <beans ... >
    <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
    <props>
    <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
    <prop key="java.naming.provider.url">t3://localhost:7001</prop>
    </props>
    </property>
    </bean>
    <bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiTemplate" ref="jndiTemplate" />
    <property name="jndiName"><value>jms.ConnectionFactory</value></property>
    </bean>
    </beans>

  • Jms clustering with spring

    Hi
    i have created the jms clustering configuration in weblogic 10.3.3 that i am facing issues in the connection queue like this
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'queueConnectionFactory' defined in ServletContext resource [WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Unable to resolve 'QueueConnectionFactory'. Resolved ''; remaining name 'QueueConnectionFactory'
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1401)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:512)
    and i have configured servers below
    clustered the managed servers MS-1 and MS-2
    Servers Targets
    JMS Server Admin server
    JMS Module cluster
    connection queue cluster
    queue JMSServer
    i have tried with the 2 different JMS servers for managed servers
    Servers Targets
    JMS Server - 1 MS-1
    JMS Server - 2 MS-2
    JMS Module cluster
    connection queue cluster
    queue JMSServer - 1 and JMSServer - 2
    so, please help us to configure the JMS clustering with spring.
    Note : please find the spring - applicationContext.xml below thats is used to configure the connection factory and jms queue.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
         <bean id="invoiceListener" class="com.spring.jms.InvoiceMDB" />
         <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
              <property name="environment">
                   <props>
                        <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
                        <prop key="java.naming.provider.url">t3://localhost:6001,localhost:6003,localhost:6005</prop>
                   </props>
              </property>
         </bean>
         <bean id="queueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
              <property name="jndiTemplate"><ref bean="jndiTemplate" /></property>
              <property name="jndiName"><value>QueueConnectionFact</value></property>
         </bean>
         <bean id="invoiceQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
              <property name="connectionFactory"><ref bean="queueConnectionFactory" /></property>
              <property name="destinationResolver"><ref bean="jmsDestinationResolver" /></property>
         </bean>
         <bean id="jmsDestinationResolver" class="org.springframework.jms.support.destination.JndiDestinationResolver">
              <property name="jndiTemplate"><ref bean="jndiTemplate" /></property>
              <property name="cache"><value>true</value></property>
         </bean>
         <bean id="jmsInvoiceSender" class="com.spring.jms.InvoiceQueueSender">
              <property name="jmsTemplate"><ref bean="invoiceQueueTemplate" /></property>
         </bean>
         <bean id="invoiceQueue" class="org.springframework.jndi.JndiObjectFactoryBean">
              <property name="jndiTemplate"><ref bean="jndiTemplate"/></property>
              <property name="jndiName"><value>MyQueue</value></property>
         </bean>
         <bean id="Invoicelistener" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
         <property name="concurrentConsumers" value="5" />
         <property name="connectionFactory" ref="queueConnectionFactory" />
         <property name="destination" ref="invoiceQueue" />
         <property name="messageListener" ref="invoiceListener" />
         <property name="sessionAcknowledgeModeName" value="AUTO_ACKNOWLEDGE" />
    <property name="sessionTransacted" value="true" />
         </bean>
    </beans>

    Are you sure you have defined the correct JNDI-name in the Spring config file?
    An example set-up of a domain can be found here - http://middlewaremagic.com/weblogic/?p=7795 (the script presented in the create domain section)
    This is basically the same set-up you have, except that a distributed queue is being used that is targeted to JMS Servers through a subdeployment.
    The Spring configuration looks as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
            <property name="environment">
                <props>
                    <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
                    <prop key="java.naming.provider.url">t3://192.168.1.50:9001,192.168.1.50:9002</prop>
                </props>
            </property>
        </bean>
        <bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiTemplate" ref="jndiTemplate"/>
            <property name="jndiName" value="jms/ConnectionFactory"/>
        </bean>
        <bean id="destination" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiTemplate" ref="jndiTemplate"/>
            <property name="jndiName" value="jms/CompanyQueue"/>
        </bean>
        <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
            <property name="connectionFactory" ref="connectionFactory"/>
            <property name="defaultDestination" ref="destination"/>
        </bean>
        <bean id="taskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
            <property name="workManagerName" value="java:comp/env/default"/>
            <property name="resourceRef" value="true"/>
        </bean>
        <bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
            <property name="connectionFactory" ref="connectionFactory"/>
            <property name="destination" ref="destination"/>
            <property name="messageListener" ref="receiver"/>
            <property name="taskExecutor" ref="taskExecutor"/>
        </bean>
        <bean id="sender" class="model.logic.JMSSender">
            <property name="jmsTemplate" ref="jmsTemplate"/>
        </bean>
        <bean id="receiver" class="model.logic.JMSReceiver"/>
    </beans>To test create a servlet, for example,
    public class TestServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            JMSSender jmsSender = SpringUtilities.getJMSSender();
            jmsSender.sendMessage();
            System.out.println("message send by the testservlet");
    }and web.xml as
    <web-app ...>
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-config.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <!-- default weblogic work manager -->
        <resource-ref>
            <res-ref-name>default</res-ref-name>
            <res-type>commonj.work.WorkManager</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
        </resource-ref>
        <!-- default weblogic timer manager -->
        <resource-ref>
            <res-ref-name>tm/default</res-ref-name>
            <res-type>commonj.timers.TimerManager</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
        </resource-ref>
        <servlet>
            <servlet-name>TestServlet</servlet-name>
            <servlet-class>test.TestServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>TestServlet</servlet-name>
            <url-pattern>/testservlet</url-pattern>
        </servlet-mapping>
    </web-app>with this set-up the JMS clustered and Spring is able to use it on both servers.

  • Integration with JMS Weblogic server, Couldn't connect to any host

    Hi ,
    I am doing XI to JMS integration(weblogic JMS server) ,have created a communication channel of type JMS and gave the following parameters.
    Transport Protocal  : Access JMS Provider with JNDI
    Message protocal    : JMS 1.X
    JNDI Lookup name with
    queueconnectionfactory :MyJMSConnectionFactory
    JNDI Lookup name with JMS Queue : MyJMSQueue
    Name of JNDI initial context factory : weblogic.jndi.WLInitialContextFactory
    <b>JNDI Server Address: http://isccap:7001/</b>
    all these parameters are working fine when used in a Client java program by which i am able to put and retrive message from Weblogic JMS server queue.
    But the same is not working in XI adapter ,
    I am getting the following error in adapter monitoring
    Zsrl_JMS_Reciever Receiver channel. Details: <u>Couldn't connect to any host</u>
    I guess the problem is with <b>JNDI Server Address: http://isccap:7001/</b>
    Is the format "http://host:port"  correct for weblogic server,
    are the JMS port and JNDI port same or different .
    I have deployed the required drivers "wlclient.jar" in XI server .
    Thanks in advance ,
    srikanth Lanka

    weblogic works on the Tenga3 protocol and hence the URL to connect to the JNDI provider of weblogic is
    t3://host:port
    At least in case of Weblogic you connect to your J2EE resources using your JNDI registry so the port would be the same.
    Rgds,
    Amol

  • JMS queue problem integrating with TIBCO

    Hi all!
    We have several communication channels between XI 3.0 (SP21) and TIBCO via JMS queues. All of them are working fine except  one. This problem only happens in development and quality systems with SP21, production has SP17 and doesn't have this error on the same communication channel.
    We are getting the following error in communication channel details...
    27-03-2008 16:32:21   XI message ID corresponding to the JMS message ID 'ID:EMS-QUALITY.14C46ECF3303EC:61' has the value 'null', with the ID: prefix removed+
    27-03-2008 16:32:21   XI message ID corresponding to JMS message with ID 'ID:EMS-QUALITY.14C46ECF3303EC:61' will be created with same value as JMSCorrelationID with value 'null'+
    27-03-2008 16:32:20   Error while processing message 'null';  detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Error in converting Binary message <?xml version="1.0" encoding="UTF-8"?> <ns0:MT_PedCarga_GE xmlns:ns0="http://pt.galp.is-oil.ec">    <Partner>        <ZIDIF>62</ZIDIF>    </Partner>    <Controle>        <Nr_Envio>29183049</Nr_Envio>        <Dt_envio>20080229</Dt_envio>        <Tipo_Carga>CPAT</Tipo_Carga>        <Operador>230</Operador>    </Controle>    <PedCarga>        <FRETE>            <Tipo_Registo>N</Tipo_Registo>            <Inst_Carreg>ES41</Inst_Carreg>            <Data_Execucao>20080228</Data_Execucao>            <Resp_Transporte>13</Resp_Transporte>            <Transporte>          </Transporte>            <Transportador>1700</Transportador>            <Ref_Externa_head>2008022931859</Ref_Externa_head>            <Gera_Docs>X</Gera_Docs>            <Imprim_Docs>X</Imprim_Docs>            <Imprim_Ordem_Carreg>X</Imprim_Ordem_Carreg>            <Confirm_Autom>X</Confirm_Autom>            <Operador>230</Operador>        </FRETE>        <ENTREGA>            <Tipo_Destinatario>1</Tipo_Destinatario>            <Local_Entrega>14018</Local_Entrega>            <Cod_Produto>GOA []</Cod_Produto>            <Quantidade>05100</Quantidade>            <Ref_Externa_Item>01737307470601</Ref_Externa_Item>            <Regime_Fiscal>N</Regime_Fiscal>        </ENTREGA>        <ENTREGA>            <Tipo_Destinatario>1</Tipo_Destinatario>            <Local_Entrega>14018</Local_Entrega>            <Cod_Produto>GOC []</Cod_Produto>            <Quantidade>13300</Quantidade>            <Ref_Externa_Item>02737307470602</Ref_Externa_Item>            <Regime_Fiscal>R</Regime_Fiscal>        </ENTREGA>    </PedCarga> </ns0:MT_PedCarga_GE> to XI message for message: null: InvalidParamException: Invalid message id: com.sap.guid.GUIDFormatException+
    Any clues?
    Regards,
    Fernando Figueiredo

    We changed the conversation ID from Message ID to Correlation ID.

  • [svn:bz-trunk] 17771: Add mxunit tests for Spring configured destinations to BlazeDS/trunk.

    Revision: 17771
    Revision: 17771
    Author:   [email protected]
    Date:     2010-09-20 14:09:01 -0700 (Mon, 20 Sep 2010)
    Log Message:
    Add mxunit tests for Spring configured destinations to BlazeDS/trunk.
    These tests are similar to the ssl tests in that they are meant to be run separately from the regular mxunit tests.
    The tests that use spring configured destinations are excluded in the common.properties file which will exclude them from the main test run. There is a spring.properties file which will cause the tests to get included when the feature property is set to spring. 
    To run the tests locally, first build the qa-regress webapp by running "ant -Druntype=spring" which will cause the web.xml with the spring integration to get used instead of the regular web.xml. Then run mxunit using "ant -DisSpring=true".
    Setting isSpring to true will cause the feature to get set to Spring and the path to the services-config.xml to get set to an empty string. This will cause no services-config.xml file to get used for mxml compilation which is what we want when using spring configured destinations.
    For automation, I'll add another target to the automation.xml file that will call mxunit and set the isSpring property to true similar to what the run.sslSuite.tests target does for the ssl mxunit tests. 
    Modified Paths:
        blazeds/trunk/qa/apps/qa-regress/WEB-INF/flex-servlet.xml
        blazeds/trunk/qa/apps/qa-regress/build.xml
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/build.xml
        blazeds/trunk/qa/features/common.properties
    Added Paths:
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/dynamicD estinations/
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/dynamicD estinations/mixedSeparatorsColonSeparatorAMF.mxml
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/multiTop ic/
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/multiTop ic/multiTopicMessagingTest.mxml
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/security /
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/security /polling-amf/
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/security /polling-amf/MessagingAuthProSendTest.mxml
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/security /polling-http/
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/security /polling-http/MessagingAuthConSubscribeTest.mxml
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/security /streaming-amf/
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/security /streaming-amf/MessagingAuthSendSubscribeConstraintTest.mxml
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/messagingService/simpleMe ssagingTest.mxml
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/remotingService/
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/remotingService/mxml/
        blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/spring/remotingService/mxml/Basi cSyntaxTest.mxml
        blazeds/trunk/qa/features/spring.properties

  • SAP R/3 integration with (Manual) Third-party App

    Hi All
    I am working on a scenario in which Third Party application has functionality which actually refines & correct the data upto the accuracy of 99%. So for this end-user needs to enter bit of information on their front-end then application will return the data on the basis of that information.
    Now the problem has different parts  -->
    *) If I choose that SAP R/3 will initiate the ( Synchronous ) process then ABAPers raised the concern that they will not be able to display the response data on correct SAP screen also how to actually access the front-end of Third party.
    Third-Party is ready to replace the Front-end with the web-service but then end-user will not be having the functionlity to select different options which is the strong part of Third-party application & also client is not agree to that.
    Do you think I should use BPM in above solution with correlation on some field to identify the SAP screen.
    *) If I choose Third Party application to initiate the ( Asynchronous ) process then again ABAPers raised the concern that how to display it on the correct SAP screen & how they know that data is coming at this point of time & they need to display it. Also Third Party said in this case they don't have expertise to customize their Front-end application & which will lead to additional cost to hire other developers.
    Now can you suggest some good solutions for this kind of scenario in which an application needs the Manual intervention & needs to be integrated with SAP R/3. Also suggest from which direction I should initiate the process.
    Thanks
    - Lalit Chaudhary -

    Matias
    <<<< with front-end do you refer to SAP R/3 ?
    No Matias with Front-End I meant Third Party is providing the web-page where end-user can enter the details & those will be refined & corrected by the Third-Party Application.
    <<<<< Which ways has the Third-Party app to connect with (file, database, jms, etc.).
    Third-Party App is providing Java Classes & Web-Services for integration but we don't want to access them directly, first of all we would like to invoke/access the Front-end application.
    <<<< What is the purpose of this third-party app ? just to receive data, validate it and return it once it is corrected ?
    Actually in this Front-end user can enter the data on given fields & data will be keep on refining while he is entering the more information into that given field. For e.g if the field says "City" & user enters "DE", a drop-down will come with all the cities in the world starting with "DE" like Delhi, Denmark etc.Once all the fields are populated with correct data user will click on "Submit" button which will send the data to SAP R/3 ( which we wish to do ).
    Now in this case when user will click on Submit button ( means Third-party will initiate the process ) & data will be send to XI using ( for e.g ) HTTP sender then ABAPer's raised concern that how they will be able to show it in the right screen without using proper thread ID.
    Pls. let me know in case you require any further information. My problem is this how to relate the Third-Party data with correct screen of SAP.
    Thanks
    - lalit -

  • Using JMS adapter with J2ee native queuing system

    Hi there,
    As far as I have understood J2EE contains it's own native queuing system (JMS). Since the J2EE is part of the WAS, shouldn't it be possible to somehow use XI's JMS adapter in conjunction with this native JMS?
    I've tried to search many places in many ways, but haven't been able to find any info. Is it possible at all?
    Hope, some of u guys can help out there:-)
    Regards,
    Daniel

    Hi Keith,
    It looks as if you are in the same situation.
    We have this working very nicely now and I'm happy to share. In fact I was just granted wiki permissions so I can add the information there along with screen shots.
    Informaiton on this configuration is very scattered but I imagine many people would find it useful for integrating with Mainframes without adding any complexity to the legacy environment. Let me come back to you with some more inormation, but for now you can get started with this:
    Insert a module as the 3rd line in your Module Processing Sequence to use AF_Modules/MessageTransformBean and give it a key in order to associate with the parameters you will need to type in below. These parameters are very similar to normal XI File adapter parameters.
    SAP Note 793922 has more info on the parameters... not the greatest reference I know.
    Also this has some info...
    http://help.sap.com/saphelp_nw04/Helpdata/EN/57/0b2c4142aef623e10000000a155106/content.htm
    I'll try and get some screen shots up on the Wiki.

  • JMS Sender with ejb3 container managed transaction

    Hi all,
    I refer to the following link http://download.oracle.com/docs/cd/E11035_01/wls100/jms/trans.html#wp1035937
    I found that JTA support JMS.
    But I dont' want to use JTA explicitly, I want to use container manage transaction. eg. inside ejb3 stateless session bean.
    does it support JMS?
    With Regards,
    wp

    Hi,
    Yes, WebLogic JMS supports JTA (a.k.a XA, a.k.a global) transactions such as container managed transactions. There are two requirements for CMTs on SSB:
    (1) use an XML descriptor setting or EJB annotation to enable CMT for the SSB
    (2) use a WebLogic JMS connection factory that is configured to have "global (XA) transactions enabled"
    And I usually also recommend:
    (3) Consider using a JEE "res-ref" for the connection factory to enable pooling of JMS resources. See "Enhanced Support for Using WebLogic JMS with EJBs and Servlets" (http://download.oracle.com/docs/cd/E14571_01/web.1111/e13727/j2ee.htm#g1329180), and the "Integrating Remote JMS Providers" FAQ (http://download.oracle.com/docs/cd/E14571_01/web.1111/e13727/interop.htm#JMSPG553).
    (4) Avoid using SSBs to receive messages. MDBs are specifically designed for processing incoming messages.
    It's also possible to have WebLogic automatically enlist foreign (non-WebLogic) vendors in WebLogic transactions. See the "Integrating Remote JMS Providers" FAQ for details (http://download.oracle.com/docs/cd/E14571_01/web.1111/e13727/interop.htm#JMSPG553).
    Regards,
    tom

  • SAML and Flex with BlazeDS

    We're trying to set up a SAML integration with our Flex/BlazeDS app.  It is not going well.  By not going well I mean we can't figure out how to get the @#%@# thing to work.  We're very experienced with Flex, REST, SOAP, etc. but SAML is something we can't get a handle on. 
    Does anyone have ANY suggestions, how-to-guides, etc. that could lead us in the right direction? 
    TIA

    You cant really replace Struts with Flex, maybe a view part
    , thats about is, you still need backend processioning
    logic,all that you are asking is difficult to answer is one reply,
    IMHO, best thing you can do is to dive into following URLs :
    http://www.adobe.com/devnet/flex/
    http://livedocs.adobe.com/flex/3/html/help.html?content=Part2_DevApps_1.html
    http://livedocs.adobe.com/blazeds/1/blazeds_devguide/
    http://livedocs.adobe.com/flex/3/html/help.html?content=Part6_ProgAS_1.html
    and of course your best friend :
    http://livedocs.adobe.com/flex/3/langref/index.html

  • Undestanding the OSM-AIA integration with SAF agent for RODOD 11gr2.

    Hello all,
    As we don't yet manage the sending of sales orders from AIA 11.1 to OSM 7.2, I looking for some information about the way AIA and OSM may be integrated with SAF agents.
    During the installation of the O2A cartridges in Design Studio, the SAF agent has been choosed against the JMS bridge approach.
    So in OSM's WebLogic domain,
    - a SAF agent is created
    - JMS resources are created in the oms module:
    -      a Remote SAF Context describing the way to be connected to the AIA's weblogic instance
    - the remote imported destintations i.e.:
    AIA_CRTBO_OUT_JMSQ
         AIA_CRTCUST_OUT_JMSQ
         AIA_CRTFO_OUT_JMSQ
         AIA_CRTTTREQ_JMSQ
         AIA_FOPROV_OUT_JMSQ
         AIA_LFERROR_JMSQ
         AIA_UPDSO_OUT_JMSQ
         AIA_UPDTTREQ_JMSQ
    Sending an order from Siebel to AIA fills an AIA_FOPROV_IN_JMSQ on the AIA database which seems to be not consumed because on the OSM side, no order is ssen in the oms_ws_requests queue.
    So, we are wondering if the Order to cash PIP in AIA is incomplete or not. Should be a SAF-agent in AIA to send orders to OSM? Should we complete the current SAF-Agent in OSM to receive and send messages to AIA?
    To integrate ASAP or UIM to OSM, it is recommended to define a SAF-Agent in OSM to send messages and a SAF-Agent in ASAP/UIM to reply to OSM. It lets me think that our AIA installation is incomplete.
    On the other side, when JMS bridges are used in OSM in 7.0.2, a bridge called created AIA_2_CFS_CreateOrder_is defined to locate and consume the remote JMS queue AIA_CRTFO_IN.
    In conclusion, we'd like some explanations on the way to integrate as well as possible AIA and OSM in a SAF context. It will help use quite a lot.
    Many thinks in advances.
    Regards,
    Christophe.

    Hi
    On OSM side should exist SAF agent for sending messages to AIA queue's and same on AIA side for sending to OSM queue's. You can even combine SAF agaent on one direction and bridge's in another direction but you'll have to do it manually in that case.
    If you see message in AIA queue and not forwarding to OSM I would first check SAF agent on AIA side ( usr/pass + remote destination (OSM) )
    best regards
    Tomac

  • Event Server Integration with other Products

    I have been using the EDA approch in my SOA project for few years now. These were based on JMS and other modes of Events supported by the WLI, BPM products. Now we have a dedicated Event processing server can we expect utilities/UI components that would easE the integration with other BEA products? What is the time frame for the avilability for this as well as the console for the Wev server?
    Thanks,
    Anil Datt

    Hello,
    Thank you for your post. We do have some integrations with other Adobe products planned for the future, but it's too early to announce our plans. We appreciate your enthusiasm for Buzzword - please keep the suggestions & ideas coming.
    Kind Regards,
    Michelle

  • Using Spring JMS DefaultMessageListenerContainer within Oracle CEP

    Hi everyone,
    I need to use a DefaultMessageListenerContainer Spring bean (from spring-jms.jar), have the wlevs bean factory to assemble it (it depends from a POJO) and set it as a property of an Adapter bean.
    How do I do it?
    I tried to put the spring-jms.jar into the xbootclasspath but it depends from spring-core.jar. If i put spring-core.jar into the xbootclasspath, the server dies screaming.
    Documentation says i can use legacy Spring beans within an OCEP application, well how do i do it? Can anyone tell me the right steps to do?

    Thanks for the answer :), i just had to import the appropriate packages into the MANIFEST.MF, put all the classes referring to spring-jms into the bundle and away i went.
    The application starts, listens to the JMS destination (an Oracle AQ queue) and dequeues messages correctly.
    I still have a problem when i try to suspend/uninstall the application from the OCEP visualizer.
    The JMS listener is encapsulated into an OCEP ResumableBean/SuspendableBean. It gets created and started (with a call to DefaultMessageListenerContainer.start()) within the beforeResume() method. I hoped that putting a call to DefaultMessageListenerContainer.shutdown() within the suspend() method would do the trick but... the undeployment hangs for a while, then the following is printed on stdout:
    ####<13-gen-2011 17.09.15 CET> <Error> <org.springframework.osgi.extender.internal.util.concurrent.RunnableTimedExecution> <> <myServer> <[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <1294934955875> <BEA-000000> <Closing runnable for context OsgiBundleXmlApplicationContext(bundle=cepcc-adapter-test-aq, config=osgibundle:/META-INF/spring/*.xml) did not finish in 10000ms; consider taking a snapshot and then shutdown the VM in case the thread still hangs>
    ####<13-gen-2011 17.09.15 CET> <Notice> <Deployment> <> <myServer> <[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <1294934955895> <BEA-2045001> <The application bundle "cepcc-adapter-test-aq" was undeployed successfully>
    ####<13-gen-2011 17.09.29 CET> <Warning> <Spring> <> <myServer> <Timer-5> <> <> <> <1294934969426> <BEA-2047008> <Exception encountered while stopping application "cepcc-adapter-test-aq": java.lang.IllegalStateException: BundleContext is no longer valid
    java.lang.IllegalStateException: BundleContext is no longer valid
         at org.eclipse.osgi.framework.internal.core.BundleContextImpl.checkValid(BundleContextImpl.java:1047)
         at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:694)
         at org.springframework.osgi.service.importer.support.internal.support.ServiceWrapper.getService(ServiceWrapper.java:99)
         at org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor$ServiceLookUpCallback.doWithRetry(ServiceDynamicInterceptor.java:107)
         at org.springframework.osgi.service.importer.support.internal.support.RetryTemplate.execute(RetryTemplate.java:83)
         at org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor.lookupService(ServiceDynamicInterceptor.java:430)
         at org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor.getTarget(ServiceDynamicInterceptor.java:415)
         at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)
         at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy371.unregisterMBean(Unknown Source)
         at com.bea.wlevs.spring.MBeanRegistrationBeanPostProcessor.destroy(MBeanRegistrationBeanPostProcessor.java:145)
         at com.bea.wlevs.spring.ApplicationContextLifecycle.onContextClosedEvent(ApplicationContextLifecycle.java:261)
         at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:149)
         at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
         at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
         at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
         at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
         at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:819)
         at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.doClose(AbstractOsgiBundleApplicationContext.java:197)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$501(AbstractDelegatedExecutionApplicationContext.java:69)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$2.run(AbstractDelegatedExecutionApplicationContext.java:214)
         at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.normalClose(AbstractDelegatedExecutionApplicationContext.java:210)
         at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.close(DependencyWaiterApplicationContextExecutor.java:379)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.doClose(AbstractDelegatedExecutionApplicationContext.java:236)
         at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:794)
         at org.springframework.osgi.extender.internal.activator.ContextLoaderListener$3.run(ContextLoaderListener.java:807)
         at org.springframework.osgi.extender.internal.util.concurrent.RunnableTimedExecution$MonitoredRunnable.run(RunnableTimedExecution.java:60)
         at org.springframework.scheduling.timer.DelegatingTimerTask.run(DelegatingTimerTask.java:66)
         at java.util.TimerThread.mainLoop(Timer.java:512)
         at java.util.TimerThread.run(Timer.java:462)
    >
    I also tried a call to DefaultMessageListenerContainer.setTaskExecutor passing it an anonymous class like this:
    container.setTaskExecutor(new TaskExecutor() {
    @Override
    public void execute(Runnable task) {
    logger.debug("Submitting runnable task");
    executorPool.submit(task);
    where executorPool is an instance field of the OCEP bean initialized like this: executorPool = Executors.newFixedThreadPool(8);
    Anyway the result is the same, when i perform the uninstall from the OCEP visualizer the application is undeployed, but with the same painful message.
    Any hint on what i'm doing wrong?
    Thanks in advance!
    Edited by: javawarrior2003 on 13-gen-2011 17.29

  • Integration with MQ 6.0

    We have a requirement to integrate Oracle BPM with MQ version 6.0. The trigger point for instance creation would be the messages subscibed from MQ. Please let me know if there is any example showing the integration or any helpful documentation. Thanks in advance.

    Hi,
    I don't know of any documentation, but here are the steps a friend documented a couple years ago:
    The MQ installer makes some changes to the environment variables, so restart Windows to ensure current settings are used.
    1) Start the MQ Queue Manager
    To start the queue manager, launch the WebSphere MQ Explorer (Start->Programs->IBM WebSphere MQ->WebShere MQ Explorer). Right-click on the queue manager and select Start:
    2) Enable WebSphere MQ Publish/Subscribe (i.e. JMS Topic) Functionality
    WebSphere MQ does not support JMS Topics out-of-the box. To enable this functionality, you'll need to do the following (QM_beaee06 is the name of my queue manager, be sure to use the correct queue manager name for your installation):
    REM -- This assumes you've installed in the default MQ directory 
    PROMPT> cd C:\Program Files\IBM\WebSphere MQ\bin
    REM -- This will check the broker status.  After installation it should be inactive
    REM -- IF YOU GET A DIFFERENT MESSAGE, BE SURE THE QUEUE MANAGER IS RUNNING
    PROMPT> dspmqbrk -m QM_beaee06 
    WebSphere MQ Publish/Subscribe broker for queue manager QM_beaee06 not active.
    REM -- Start the broker 
    PROMPT> strmqbrk -m QM_beaee06 
    WebSphere MQ Publish/Subscribe broker started for queue manager QM_beaee06.
    REM -- Now we can verify the broker is running 
    PROMPT> dspmqbrk -m QM_beaee06 
    WebSphere MQ Publish/Subscribe broker for queue manager QM_beaee06 running
    REM -- Last, we need to run a WebSphere MQ script to enable publish/subscribe 
    PROMPT> runmqsc QM_beaee06 < ..\Java\bin\MQJMS_PSQ.mqsc 
    8 MQSC commands read. 
    No commands have a syntax error. 
    All valid MQSC commands were processed. 3) Create a Sample Queue and Topic
    While you can use WebSphere MQ Explorer to add destinations using a GUI, it's quite easy to do it from the command line:
    REM -- This assumes you've installed in the default MQ directory 
    PROMPT> cd C:\Program Files\IBM\WebSphere MQ\bin
    REM -- This will launch an interactive shell where you'll enter the subsequent commands
    REM -- Note that the runmqsc shell does NOT provide any prompts
    PROMPT> runmqsc 
      define qlocal (ALBPM.SAMPLE.QUEUE) 
      define qlocal (ALBPM.SAMPLE.TOPIC) 
      end4) Configure the JMS Administered Objects in JNDI
    WebSphere MQ makes it very easy to use Sun's File System JNDI repository, so that's what you'll use here (if your client already has a JNDI repository in place, it can be substituted here). Before configuring JNDI, create this directory: C:\JNDI-Directory
    You'll also need to edit the JMSAdmin.config configuration file to specify your JNDI connection parameters – you can find this file in the C:\Program Files\IBM\WebSphere MQ\Java\bin directory. To use the file-based repository, ensure the following values are used:
    INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory 
    PROVIDER_URL=file:/C:/JNDI-DirectoryOnce the JNDI parameters are set, you're ready to launch the MQ's JMS Administration command line interface:
    REM -- This assumes you've installed in the default MQ directory 
    PROMPT> cd C:\Program Files\IBM\WebSphere MQ\Java\bin
    REM -- This will launch an interactive shell where you'll enter the subsequent commands
    REM -- Note that the 'hostname' will default to 'localhost' and could have been omitted
    PROMPT> JMSAdmin 
    InitCtx> define q(albpmQueue) queue(ALBPM.SAMPLE.QUEUE) 
    InitCtx> define qcf(albpmQCF) transport(client) hostname(localhost)
    InitCtx> define t(albpmTopic) topic(ALBPM.SAMPLE.TOPIC) 
    InitCtx> define tcf(albpmTCF) transport(client) hostname(localhost)
    InitCtx> end 5) Test WebSphere MQ with a Stand-Alone JMS Client
    Use a generic JMS client to test. This enables you to quickly test connectivity to WebSphere MQ (or any other JMS broker). Always test integration with back-end services (whether it's a JMS broker or some other type of integration) from outside Oracle BPM before attempting it with the tool -- once it's working ouside Oracle BPM, it's typically trivial to get things working inside Oracle BPM.
    6) Configure Oracle BPM to Use WebSphere MQ
    Once you have successfully tested WebSphere MQ (or another JMS provider) using the stand-alone client, you can use the same configuration with Oracle BPM.
    a. Verify the following Java libraries have been added as an external resource:
    com.ibm.mq.jar
    connector.jar
    com.ibm.mqjms.jar
    dhbcore.jar
    fscontext.jar
    providerutil.jar
    The Java External Resource should not be marked versionable.
    b. Verify the JNDI Provider is configured with the same configuration as the stand-alone client. The resource type is (somewhat confusingly) a J2EE Application Server and the security principal and credential are both left blank.
    c. Verify the JMS Message Service external resource is correctly configured for the queue. It will lookup the Queue Connection Factory as well as the Queue itself using the JNDI resource previously defined.
    d. Similarly verify another JMS Message Service resource has been configured for the topic. It too will use the same JNDI resource.
    7) Execute the Oracle BPM Process
    a. Add Global Automatic activities (one for the queue and another for the topic) that each create a new work item each time a message is received. The runtime properties settings for these should be respectively:
    Global automatic type: "Executes when an event occurs"
    Listener class: "Fuego.Msg.MessageQueueListener"
    Component event types: "anyMsg: Java.Lang.Object"
    and
    Global automatic type: "Executes when an event occurs"
    Listener class: "Fuego.Msg.TopicListener"
    Component event types: "anyMsg: Java.Lang.Object"
    The logic in the Global Automatic has:
    componentArguments as Any[String]
    componentArguments = [
    "contextFactory" : "com.sun.jndi.ldap.LdapCtxFactory",
    "providerURL" : "ldap://fgdal-test1:389/dc=fuegotech,dc=us",
    "securityPrincipal"  : "cn=root",
    "securityCredentials": "password",
    "factoryName"        : "cn=qcf1",
    "queueName"          : "cn=q1"
    logMessage "MQLIstener:: MQListener initialized with this arguments:\n" + componentArguments
        using severity = DEBUG
    logMessage "MQ Message Received is " + arg.anyMsg using severity = DEBUG
    processargs as String[String]
    processargs["mqData"]=String(arg.anyMsg)
    // this creates the instance in the process passing the message into the input argument "mqData"
    result2 = ProcessInstance.create(arguments : processargs,argumentsSetName:"BeginIn")b. Deploy the process and start the server. Login to the Oracle BPM WorkSpace. Add a message to the queue and/or topic and the work item instance should show up in the Inbox immediately.
    Hope this helps,
    Dan

  • Integration with JAZN

    Hi!
    I have implemented a contract-first web service using Spring-WS, and would like to authenticate towards the OC4J JAZN Jaas security provider.
    Is it possible to integrate with JAZN by accessing the JAAS api directly? I have set up my own realm in the OC4J Instance security settings, and uses this realm name in my application code, but I cant succeed in authenticating with this setup at all. My orion-application.xml references the instance level xml configuration file.
    Has anyone succeeded in integrating with JAZN in this way at all?
    All feedback would be most welcome :)
    Btw, I am using OC4J 10.1.3.
    With regards,
    Ketil Aasarød
    Edited by: user525214 on Sep 3, 2008 3:13 AM
    Edited by: user525214 on Sep 3, 2008 3:21 AM

    Hi,
    Thanks for your responce.
    yes, you are right, we can achieve that by a new user JAZN and assign a role "BPMSSystemAdmin". But by doing so, we are giving the total control to the user. he can edit the data for the other instances also. i don't want to happen that.
    my requirement is , the end user just able to edit the data and can continue, and also if he is not responded in the stipulated time auto esclation to the admin. he should not have privilage to chage the rule or edit the payload for other instances....
    can it be possible?
    please help me..,
    if there is no such option, please tell me the ulternate way to achive this requirement...

Maybe you are looking for

  • Trying to set up Airport Express with Ethernet Powerline adapters

    Hello, Having some problems trying to set up my Airport Express with Netgear ethernet powerline adapters. I want to set up as follows: Wireless Belkin router --- powerline <---> powerline --- airport express --- home stereo system The problem I have

  • Problem with java stored procs.

    Is there a restriction on accessing XML documents from Java stored procs? I have a Java program to parse XML document and return a string. If I run this program as a stand alone, the program runs fine. I loaded the oracle xmlparser.jar into ORACLE8i

  • About the DDIC association mapping in tcode:SEGW

    Hi experts, I am trying to build a simpel odata service in segw. I build the service step by step 1)Created 2 entity type named "map" and "dlink" by importing from DDIC    at the same time, entityset "maps" and "dlinks" are created 2) Created 1 assoc

  • Cache after crash

    Firefox crashed (causes don't matter) . Ok, next time I open firefox all the cache is deleted even if all the cache was still there in the cache folder. Every time this happens it's a headache because you have to load the pages again. When it happene

  • Display Description from Text table on View Cluster

    Hello All, I have the below requirement for creating a view cluster to maintain customizing data - V_TAB_1 has been created for table TAB_1. TAB_1has a text table associated with it. V_TAB_2 has been created for table TAB_2. TAB_2 has a field which h