Advertisements
RSS

Oracle Service Bus upgrade JMS service results in error

09 Jan

When upgrading OSB projects from version 10.3.1 to 11.1.1.4 the OEPE plugin shows the following error message in a JMS transport based business service.

Business Service error

Business Service error

Expected elements:
  unit-of-order@http://www.bea.com/wli/sb/transports/jms
  pass-caller-subject@http://www.bea.com/wli/sb/transports/jms
  response-properties@http://www.bea.com/wli/sb/transports/jms
instead of:
  response-required@http://www.bea.com/wli/sb/transports/jms
here in element outbound-properties@http://www.bea.com/wli/sb/transports/jms

The reason is a difference in the internal OSB JmsTransport.xsd schema definition for “http://www.bea.com/wli/sb/transports/jms” in both OSB version.

Oracle Service Bus 10.3.1 = /%WLHOME%/osb_10.3/lib/sb-schemas.jar

    <xs:choice>
        <xs:element name="outbound-properties" type="JmsOutboundPropertiesType"/>
        <xs:element name="inbound-properties" type="JmsInboundPropertiesType"/>
    </xs:choice>
	.....
    <xs:complexType name="JmsOutboundPropertiesType">
        <xs:sequence>
            <!-- type of outbound message: One of: Text or Bytes -->
            <xs:element name="message-type" type="JmsMessageTypeEnum"/>
            <!-- outbound JMS message time-to-live, in seconds -->
            <xs:element name="expiration" type="xs:int" minOccurs="0"/>
            <!-- Represents JMS message delivery mode. If it is enabled it will be set as persistent else it will be set as non-persistent -->
            <xs:element name="enable-message-persistence" type="xs:boolean" minOccurs="0"/>
            <!-- whether or not this endpoint needs to wait for response to be
                 published to specified destination -->
            <xs:element name="response-required" type="xs:boolean" minOccurs="0"/>
            <!-- response destination, only applicable if response-required is true -->
            <xs:element name="response-URI" type="xs:string" minOccurs="0"/>
            <!-- how long to wait for response to be published, in seconds, only
                applicable if response-required is true  -->
            <xs:element name="response-timeout" type="xs:int" minOccurs="0"/>
            <!-- JMS unit-of-order value, for ordered message delivery,
                 only applicable to JMS destinations hosted on BEA WLS 9.0
              for more details, see http://e-docs.bea.com/wls/docs90/jms/uoo.html -->
            <xs:element name="unit-of-order" type="xs:string" minOccurs="0"/>
            <!-- response correlation pattern. JMSCorrelationID represents
                 the legacy ALSB way, JMSMessageID is useful for jax-rpc and
                 other JMS interop use cases. -->
            <xs:element name="response-pattern" type="JmsResponsePatternEnum" minOccurs="0"/>
            <!-- response connection factory, only applicable if response-required is true and JMSMessageID pattern is used -->
            <xs:element name="response-CF" type="xs:string" minOccurs="0"/>
            <!-- map of targets to response queues -->
            <xs:element name="response-target-map" type="JmsDestinationMap" minOccurs="0"/>
            <!-- whether to pass the callers subject or not -->
            <xs:element name="pass-caller-subject" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

Oracle Service Bus 11.1.14 = /%WLHOME%/Oracle_OSB1/lib/sb-schemas.jar

    <xs:complexType name="JmsOutboundPropertiesType">
        <xs:sequence>
            <!-- type of outbound message: One of: Text or Bytes -->
            <xs:element name="message-type" type="JmsMessageTypeEnum" minOccurs="0"/>
            <!-- outbound JMS message time-to-live, in seconds -->
            <xs:element name="expiration" type="xs:int" minOccurs="0"/>
            <!-- Represents JMS message delivery mode. If it is enabled it will be set as persistent else it will be set as non-persistent -->
            <xs:element name="enable-message-persistence" type="xs:boolean" minOccurs="0"/>
            <!-- JMS unit-of-order value, for ordered message delivery,
                 only applicable to JMS destinations hosted on BEA WLS 9.0
              for more details, see http://e-docs.bea.com/wls/docs90/jms/uoo.html -->
            <xs:element name="unit-of-order" type="xs:string" minOccurs="0"/>
            <!-- whether to pass the callers subject or not -->
            <xs:element name="pass-caller-subject" type="xs:boolean" minOccurs="0"/>
            <!-- Response related properties, if there is no response required then this element does not exist. -->
            <xs:element name="response-properties" type="JmsOutboundResponsePropertiesType" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

As you can see that multiple elements, amongst them the response-required element, have disappeared in the JmsOutboundPropertiesType. Editing the Business Service file manual, or even better use OEPE to change the configuration of your business service to trigger OEPE to regenerate a valid XML structure.

Advertisements
 
Leave a comment

Posted by on 09-01-2012 in OSB

 

Tags: ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: