4 Replies Latest reply on Mar 3, 2008 10:33 AM by Olivier Lemaitre

    sql-provider behaviour problem

    Olivier Lemaitre Newbie

      Hi everybody,

      I am working with JBossESB server 4.2GA.
      It is installed on a developpement environnement (my PC).
      It is also installed on an integration environnement (HP unix machines of the company).
      Both have an oracle database installed on.

      I started from the helloworld_sql_action example and therefore the sql-provider to get rows from the database.

      When I test my service in the developpement environnement the content of the message appears in the property part of the message at the sql_row_data_tag location. Here is a simplified view of the message copied from the server log:

      body: [ objects: {} ]
      properties: [ sqlRowData={MESSAGE_TABLE=PRODUCT, MESSAGE_CLE_ENREG

      When I test exactly the same service in the integration developpment
      the content appears in the object part of the message.
      Here is a simplified view of the message copied from the server log:

      body: [ objects: {org.jboss.soa.esb.message.defaultEntry={MESSAGE_TABLE=PRODUCT, MESSAGE_CLE_ENREGISTREMENT=PRO_CODE = '81591' and COU_CODE = 'BE', MESSAGE_TYPE=UPDATE, MESSAGE_ID=4, MESSAGE_STATUT=P},]
      properties: [ {org.jboss.soa.esb.message.time.dod=Wed Feb 27 10:22:44 CET 2008, org.jboss.soa.esb.gateway.original.url=jdbc:oracle:thin:....))), org.jboss.soa.esb.message.time.dob=Wed Feb 27 10:22:44 CET 2008, org.jboss.soa.esb.message.source=
      PortReference < jms://localhost/queue/evenements_ramy_esb >, org.jboss.soa.esb.message.transport.type=JMS} ] ]

      I can't see what I have done wrong, can you help me please?

        • 1. Re: sql-listener behaviour problem
          Olivier Lemaitre Newbie


          I investigated a bit more and I found that it should be a sql-listener problem.

          I found that that code in the process method of sqlTableGatewayListener.java

          if(MessagePayloadProxy.isUsingLegacyPatterns()) {
           props.setProperty(ListenerTagNames.SQL_ROW_DATA_TAG, obj);
          } else {
           payloadProxy.setPayload(message, obj);

          and this one in the messagePayloadProxy.java

          static {
          setUseLegacyPatterns(ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(USE_LEGACY_EXCHANGE_PATTERNS_CONFIG, "false").equals("true"));

          It looks like I don't have the same configuration between te two environnement.

          What does legacy exchange patterns mean ?

          How can I set the USE_LEGACY_EXCHANGE_PATTERNS_CONFIG to "True" in the integration environnement ?

          Thanks for your Help.

          • 2. Re: sql-provider behaviour problem
            Mark Little Master

            Is there any reason you're not using 4.2.1GA?

            • 3. Re: sql-provider behaviour problem
              Olivier Lemaitre Newbie

              Effectively I have just made some verification.
              I work with a 4.2GA release I downloaded in september on the developpement environnement.
              On the other way that it is the 4.2.1GA that is installed on the integration environnement.

              That may be the reason of this dissonance between the two environnements.

              Unfortunatly, I can not test this today but I let you know on monday if it is solved.

              I have anyway found a solution a few hours ago,
              I added the "use.legacy.message.payload.exchange.patterns" property
              into the core propetries of the jbossesb-properties.xml file
              in the jbossesb.sar directory of the integration environnement.
              And now I have my data at the right place.

              • 4. Re: sql-provider behaviour problem
                Olivier Lemaitre Newbie


                My mistake was effectively a difference between the release version which was 4.2GA in development and 4.2.1GA in integration.

                Thanks for your help.