JMS Message Selector on Message Payload

Hi,
I have a requirement where in;
A JMS adapter consumes messages from an AQ JMS Topic. We need to make selective dequeue from the Topic. Is that possible to make use of the message selector option on the 'message payload'?
Message selector works on JMS Header and Properties as far as I know.
Any insight on this would be of great help :-)
Thanks,
Manoj Nair.

It's like almost a month to get a response for such a generic JMS functionality. Looks like the Oracle SOA user base is really low. Anyone with a working example reference.
Thanks

Similar Messages

  • OSB JMS Message Selector / Filter

    HTTP PS and JMS BS puts messages on WLS JMS Queue. We need consume some messages from the Queue based on payload content since interfaces for other messages may go Live in next year.
    JMS Message look like
    <Schools>
    <School>
    <Id></Id>
    <ServiceArea>100</ServiceArea>
    <Type></Type>
    </School>
    </Schools>
    We need to consume messages where ServiceArea = 100.
    Can you advise how to consume messages where ServiceArea = 100 ?
    I would appreciate your help.
    Thanks in advance.
    Kiran
    Edited by: 844345 on Mar 14, 2011 5:02 PM

    JMS message selector on message payload fields is not recommended and it will have performance implications. Instead you can design this in either of the 2 ways below
    1 - Modify the HTTP PS which publishes the message to set the JMSCorrerlationID header ( or any othe custom JMS property) with the value of Service Area. You can achieve this using Transport Header action in HTTP PS route node.
    For the JMS consumer proxy set a message selector on the JMS transport page to filter only messages belonging to this service area.
    2. Let the HTTP PS continue publishing all messages to the output queue. Have a new component in your design called a 'disaptcher' which reads all the message from the output queue, check service area tag and route messages belonging to particular area to an area specific queue. Have your jms consumer specific for service area 100 to listen to only this Area specific queue.

  • Trouble using JMS Message Selector and DCJMSMessageProperty0

    Hello Experts!
    My scenario is Mainframe => MQ => JMS Adapter => XI => SAP
    My MQ channel is communicating fine to XI and I've set the JMS adapter to JMS Compliant.
    I have multiple message types with consistent headers but varying data layouts that I need to route to different mapping objects. So it seems the best solution for this is JMS Message Selector based on reading a header value from one of the dynamic message properties.
    I've read SAP Notes and SAP Library and SDN Wiki articles about this configuration and I think its possible.
    http://help.sap.com/saphelp_nw04s/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
    Note 856346 - J2EE JMS Adapter: Frequently Asked Questions (FAQ)
    Note 1086303 - XI JMS Adapter and IBM Websphere MQ: FAQ
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/usage%252bof%252bmessage%252bselector%252bfor%252bjms%252bsender%252badapter
    My mainframe sends an MQ message that includes some extra header information like
    field: ApplType  VALUE: 000000002                                              
    field: ApplName    VALUE: MIS056O          
    I configured my Communication Channel to set Adapter-Specific Message Attributes and also Additional JMS Message Properties to include ApplType and ApplName.
    However, I can only see some of the standard JMS header items such as CorrelationID, none of the additional ones.
    In RWB I see "JMS property 'ApplType' that corresponds to dynamic header 'DCJMSMessageProperty0' is missing from JMS message 'ID:f2f0f0f9f0f4f2f1f0f9f1f5f5f3f7f44040404040404040'; consequently it cannot be added to XI message 'e136a6e8-8580-4adc-2007-9ccab93f1ef4' as a dynamic header"
    Can anyone with some experience doing this help me see if I'm missing a trick somewhere? How can I see where this information is being dropped? Could it be when MQ is handing to JMS?
    Many thanks,
    Aaron

    After sifting through some IBM documentation I found that the PutApplName field actually maps to JMS name JMSXAppID. So after adding this to my Additional JMS Message Properties list I get the dynamic JMS message property I need for sorting out the messages.
    http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzaw.doc/uj25450_.htm

  • JMS message selector

    hi there,
    any one used JMS message selector field in the JMS sender adapter. I want to filter out messages that are relevant for various interfaces. where do i set the filter value. i read java docs, it says the filter is possible for message header and properties. the weblog on sdn is not exactly clear and it doesn't work either.
    thx

    Ya you can go ahead with it right ??? See it says you can filter on the basis of header info and its properties , so header info will have originating source info. Its worthful to use it that way . Please clarify if i am wrong , i think thats what u require filter msg on basis of interface for what you are using the adapter.
    ref : http://java.sun.com/j2ee/sdk_1.3/techdocs/api/index.html
    ref : http://help.sap.com/saphelp_nw70/helpdata/EN/45/20d245ceff2b35e10000000a1553f7/frameset.htm
    I just tried , see if it helps , or i am wrong in getting your question
    If helpful please award points
    Abhishek

  • Processing large message payload with weblogic JMS

    Hi,
    I have a requirement in my project to process 50MB-500MG-1GB file using the JMS queue.
    We could able to process 50MB payload but it's talking almost 2-3min to post the message and 2-4min to consume the message. Are there any configurable parameters available to fine tune the JMS queue to handle large payload? or is there any limitation on the size of the queue to process ?
    Please advise.
    Thanks,
    Sri

    There is a way to defer large messages from the rest and process them using a job in a specific queue.
    Please check this configuration :
    <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm">http://help.sap.com/saphelp_nw2004s/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm</a><a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/14/8024">Message Selection Filter</a>
    in this path:
    Under Runtime - > Integration engin ->
    Prioritized Message Processing
    Queues for Prioritized Message
    Good luck
    Nimrod

  • Setting JMS Selector as JMS Message ID

    Does anyone knows how to set the JMS Selector as JMS Message id, i tried using JMSMessageID=P<720374.1242857046478.0> but i keep getting exception stating
    javax.jms.InvalidSelectorException: weblogic.messaging.kernel.InvalidExpressionException: Expression : "JMSMessageID=P<720374.1242857046478.0>"
         at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
         at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:164)

    Hi Tom,
    Do you know any general solution for the situation you mentioned in your last post on this thread? Unfortunatelly one of our customers have an architecture which mixes a weblogic 8 domain with a weblogic 10 one. The JMS server is in the weblogic 10 domain but they have an OOB IGW application which runs on weblogic 8 and uses the JMS API of it. The IGW application applies the JMS Message Id model for correlating the request and response messages, but the consumer, on the weblogic 10 side, cannot find the response message because the JMS Message Id changed. The JMS of webloigc 8 - I guess - put an 'N' char after 'ID:' into the msgId and paste the whole id into the correlationId field. But on the weblogic 10 side, the consumer have the original msgId without 'N' and, of course, it doesn't find the response msg.
    So do you have any general solution to convert between these different msgId formats?
    Thanks in advance,
    Andras

  • JMS/AQ: Setting properties for JMS message using PL/SQL

    I have created a procedure in PL/SQL that uses JMS messages, and now I need to include a property so that the subscriber can use a message selector to filter out unwanted messages. Is this possible using PL/SQL?
    A previous post said: "... But you can have properties in the message payload itself and also define selectors on the message content ...". But I looked at Sun's tutorial and there it said: "A message selector cannot select messages on the basis of the content of the message body."
    I have 300 different screens and messages apply only to one screen at a time. When the user is looking at screen 'A' I want him to only recieve messages that apply to screen 'A'. I thought I would do this with message selector, but is there any other way?
    Here is my code(borrowed from an earlier post)
    PROCEDURE ENQUEUE_JMS_MESSAGE AS
    BEGIN
    DECLARE
    Enqueue_options DBMS_AQ.enqueue_options_t;
    Message_properties DBMS_AQ.message_properties_t;
    Message_handle RAW(16);
    User_prop_array SYS.AQ$_JMS_USERPROPARRAY;
    Agent SYS.AQ$_AGENT;
    Header SYS.AQ$_JMS_HEADER;
    Message SYS.AQ$_JMS_TEXT_MESSAGE;
    Message_text VARCHAR2(100);
    BEGIN
    Agent := SYS.AQ$_AGENT('',NULL,0);
    User_prop_array := SYS.AQ$_JMS_USERPROPARRAY();
    Header := SYS.AQ$_JMS_HEADER( Agent, '', 'aq1', '', '', '', User_prop_array);
    Message_text := 'Message 1 from PL/SQL';
    Message := SYS.AQ$_JMS_TEXT_MESSAGE(Header, LENGTH(Message_text), Message_text, NULL);
    DBMS_AQ.ENQUEUE(queue_name => 'tstopic',
    Enqueue_options => enqueue_options,
    Message_properties => message_properties,
    Payload => message,
    Msgid => message_handle);
    END;
    END;
    -Christer

    Thanks for the answer. I managed to set the Correlation id and retrieve it using getJMSCorrelationID(). But I did not manage to use the MessageSelector on it. I have used the Topicbrowser which is not part of the JMS standard? I tried to enqueue the messages using Java too and tried to use the topicbrowser on both JMSCorrelationID and user defined properties withou success. Is there some special requirements of the TopicBrowser?
    Enumeration messages;
    oracle.jms.TopicBrowser browser =tsess.createBrowser(topic, "TS", "JMSCorrelationID = 'TST'");
    int count = 0;
    messages = browser.getEnumeration();
    if(messages.hasMoreElements())
    System.out.println("message"); //never executed
    dtxtmsg = (TextMessage)(tsub1.receiveNoWait()) ; //returns a message
    String corrID = dtxtmsg.getJMSCorrelationID(); //returns: TST
    Thanks for your help so far...it would really save my day if you have some ideas on this too!
    -Christer

  • Correlation for JMS Messages possible? JMSCorrID in JMSHeader not accepted

    Is Correlation for communication over JMS messages possible?
    If I define the JMSHeader field "JMSCorrelationID" in a correlation set ("as usual") then I get
    compiler errors:
    Error ORABPEL-10036: invalid correlation set
    BPEL seems not to accept JMSHeader fields for correlation but only fields from the actual payload msg.
    Is this true?
    Is there soemwhere a guide on how to correlate JMS messages?
    Thank you
    Michael

    you can use the "Message Selector" on the JMS adapter to filter to achieve that;
    here is extract from oracle help document
    Message Selector
    Specify filtering logic that enables you to receive messages that match a certain criteria. Enter an expression between 1 and 255 characters in length. Use SQL92 syntax in this field. The JMS server uses this criteria to filter messages received by this consumer. The message selector works with variables defined in standard JMS headers and user-defined properties. You cannot use variables or elements that are in the payload of the message.
    For example, you can enter logic such as: JMSPriority > 3. Based on this, messages with a priority greater than 3 are consumed; all other messages are rejected. JMSType = 'car' AND color = 'blue' AND weight > 2500 Country in ('UK', 'US', 'France')
    it's got some limitations but works fine for our requirements so far...

  • Can not dequeue JMS message of type SYS.AQ$_JMS_TEXT_MESSAGE using DBMS_AQ

    I'm having a problem using DBMS_AQ package to dequeue a JMS message of type SYS.AQ$_JMS_TEXT_MESSAGE that was put on the queue using Java JMS API.
    Both JMS header and payload return empty but if I do "select user_data" from the queue table, I can see the message.
    Appreciate any helps or tips.
    Kim

    This has been asked a lot of times - I'm not sure how my initial searching missed all of the other questions/answers related to this topic.
    In our case, the solution was to:
    1) Leave the queue as a sys.aq$_jms_text_message type
    2) Construct a sys.xmltype object with our desired payload
    3) Do a getStringVal() on the xmltype object and use that string as the payload for our queue message
    - Nathan

  • Adapter Status Error :  Error in creating message ID map for JMS message:

    Currently in the SAP XI 3.0 JMS Adapter, I am receiving the following error
    Error in creating message ID map for JMS message:
    ie. Error while processing message 'de8265f6-c864-4479-1137-9bab17b78b3b';  detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Error in creating message ID map for JMS message: ID:c3e2d840d8d4d7f14040404040404040c44f8e2213630b01 at com.sap.aii.adapter.jms.core.channel.filter.InboundDuplicateCheckFilter.filter(InboundDuplicateCheckFilter.java:103)
    Although I am receivng this error, when I check the details of the message processing, all steps are successful and the message is set to status : DLVD
    Audit Log for Message: de8265f6-c864-4479-1137-9bab17b78b3b
    Time Stamp     Status     Description
    09.06.2009 13:27:24     Success     New JMS message with JMS message ID ID:c3e2d840d8d4d7f14040404040404040c44f8e2213630b01 received. The XI message ID for this message is de8265f6-c864-4479-1137-9bab17b78b3b
    09.06.2009 13:27:24     Success     JMS message converted to XI message format successfully
    09.06.2009 13:27:24     Success     RRB: entering RequestResponseBean
    09.06.2009 13:27:24     Success     RRB: suspending the transaction
    09.06.2009 13:27:24     Success     RRB: passing through ...
    09.06.2009 13:27:24     Success     RRB: leaving RequestResponseBean
    09.06.2009 13:27:24     Success     Transform: using Transform.Class: com.sap.aii.messaging.adapter.Conversion
    09.06.2009 13:27:24     Success     Transform: transforming the payload ...
    09.06.2009 13:27:24     Success     Transform: successfully transformed
    09.06.2009 13:27:24     Success     Application attempting to send an XI message synchronously using connection JMS_http://sap.com/xi/XI/System.
    09.06.2009 13:27:24     Success     Trying to put the message into the call queue.
    09.06.2009 13:27:24     Success     Message successfully put into the queue.
    09.06.2009 13:27:24     Success     The message was successfully retrieved from the call queue.
    09.06.2009 13:27:24     Success     The message status set to DLNG.
    09.06.2009 13:27:25     Success     The application sent the message synchronously using connection JMS_http://sap.com/xi/XI/System. Returning to application.
    09.06.2009 13:27:25     Success     The message was successfully transmitted to endpoint http://sapxia.swets.nl:8000/sap/xi/engine?type=entry using connection JMS_http://sap.com/xi/XI/System.
    09.06.2009 13:27:25     Success     The message status set to DLVD.
    Not sure why this is occurring.......

    No, not using correlation id.
    I was able to resolve the issue on this queue by changing the following setting
    Under the PROCESSING tab, under XI SETTINGS
    Time period for Duplicate Check for EO(IO) (secs) it was set to 86400
    I have changed this to 300 seconds and the adapter has now gone green.
    BUT......
    That said, I have the exact scenario on another sender JMS channel set to 300 seconds and it exhibits the same issue.
    correlation settings:
    Set XI message id  to  = GUID
    Set Xi conversation

  • How to do service callout with the incoming JMS message in OSB 11g

    Hello All,
    I have a specific requirement for which I am creating a kind of POC where I need some help in OSB, however am new to OSB.
    My Environment:
    1> I have a request queue (deployed on a WLS domain) - WFReq_WS
    2> I have a response queue (deployed on a WLS domain) - WFRes_WS
    3> I have created a ProxyService (request/response type) in OSB 11g which is simply mapping the incoming message in WFReq_WS to WFRes_WS
    4> I have a WebService (it is currently a simple hello WebService for testing) which takes a string and returns the same string with an added 'Hi' in front of it (e.g. If you send Jack, it will return 'Hi Jack')
    My Requirement:
    1> I have to do some mechanism in OSB, by which while mapping the message from WFReq_WS to WFRes_WS (through the proxy service I have), it will pick the JMS message (which will be a string/text) and will make a service callout to the Webservice I mentioned using the message as the input parameter of the WebService.
    2>Now when the response of the WebService will come, OSB should send this response as the message in the response queue (WFRes_WS) I mentioned above.
    To simplify the requirement using an example:
    A> I will send a text/String message (say Jack) to the request queue (WFReq_WS)
    B> OSB should pick the message (Jack) and make a service callout to the webservice
    C> webservice will return 'Hi Jack'
    D> OSB should send this to the response queue (WFRes_WS)
    I know the above might look very basic question to the PROs, but please elaborate (step by step) what need to be done, since I do not know OSB.
    Thanks a lot for your help !

    Your example points A and D are easily done by having a "Proxy Service" which has the following details:
    Service Type = Messaging Service
    Request and Response type = Text
    Protocol = jms
    Endpoint URI = your request queue (format like 'jms://localhost:7013/weblogic.jms.XAConnectionFactory/QueueJNDIName')
    Checkmark "response" so that the proxy service automatically delivers the response to another queue - your response queue
    Response URI = jms://localhost:7013/weblogic.jms.XAConnectionFactory/QueueResponse
    Now since your "Hello" webservice is (probably) a SOAP xml service you need to "convert" your text based JMS message to xml before sending it on to the "Hello" service.
    Your JMS proxy can do that by just doing a "Assign <whom>{$body/text()}</whom>" to a variable (lets call it 'reqHello')
    Now your JMS proxy should actually call the Hello service and since your JMS proxy is text and the Hello service is SOAP you cannot just "pass" on to the Hello service in a "Route to". Instead you can do a Service Callout where you can specify your "reqHello" variable as payload and a "respHello" as response variable.
    Now you have the "<whom>Hi jack</whom>" in the response variable and since the JMS response needs to be text format you can "extract" the text value into the body variable of the JMS proxy (use "replace /* in body with $respHello/text()" - replace node contents)
    The actual Hello service is a simple "SOAP" based Proxy Service. Add a pipeline and add a stage in the reponse pipeline. Do a ...
    Assign fn:concat("Hi ",$body/whom/text()) to $whomVar
    Replace whom in body with $whomVar (replace node contents)

  • JMS - PI - IDoc scenario: possible to disable check for duplicate JMS message ID?

    Dear all,
    we have a scenario JMS - PI - IDoc. We are on 7.4 SP 7 AEX.
    Once and again we get this error in PI Logs
    com.sap.aii.adapter.jms.core.channel.filter.InboundDuplicateCheckFilter.filter(MessageFilterContext filterCtx)
    Duplicated and already processed JMS message with JMSMessageID ID:414d512053415050523120202020202053f0f4852000fb39 and XI message id b0beffdbcee64c2605779eaacf27b335 detected.
    We are currently investigating the error and it seems that the duplicate message IDs already exist on the JMS (MQ) side. The messages with the same ID reside in the same queue but have different payloads, so really are different messages
    While it's certainly true that we need to get rid of those duplicate IDs in the long run, I'd like to ask if it is possible to tackle the problem from both sides.
    My sender JMS Adapter looks like this:
    Transactional JMS Session = Checked
    Set PI Message ID (MessageID) to = GUID
    Set PI conversation ID (ConversationID) to = No Value
    Enable Duplicate Handling = Unchecked
    Prefix Channel ID = Unchecked
    --> Is there any way to tell PI to just ignore the duplicate JMS ID and continue processing?
    Many thanks
    Kind regards
    Jens

    Hi Jens - Please have a look at the below note if it helps.
    If you want the duplicate messages received from different channels (that is JMS Messages with the same Message ID) to be processed as a distinct JMS messages and not as duplicate messages, select Prefix Channel ID to JMS Message ID
    Reference :
    Configuring the Sender JMS Adapter - Advanced Adapter Engine - SAP Library

  • Error in JMS message routing

    Hi,
    I am doing interface which send JMS messages to IDOC. JMS is sending three different messages (three XSD's) and I have created three separate interfaces as a below.
    A) Negative.xsd ; to IDOC1
    B) Positive.xsd ; to IDOC2
    C)Multiple.xsd ; to IDOC3
    When I get the Negative.xsd from JMS for the first time, Interface u2018Au2019 is executing and itu2019s creating IDOC1 successfully. When I get the Negative.xsd for the second time then the Interface u2018Bu2019 is executing (Instead of Interface u2018Au2019) and itu2019s trying to send Negative.xsd into IDOC2 and itu2019s getting fail.
    When we are getting all the three XSDu2019s at the same time then first interface u2018Au2019 is getting picked up and failed for the second (u2018Bu2019) and third (u2018Cu2019) interfaces and for first one is successful.
    Can you please guide me to pick the right interface?
    Regards,
    Kishore

    Hi, Kishore:
    In your situation, you need to configure Message Selector for your JMS sender adapter:
    1.  First you have to work with your JMS Queue system consultant, create a Property name, Saying "MsgType", its value is used to identify type of the message. e.g. the message of Positive Type put into the queue, its Property value "MsgType" can be set to "Positive"
    2.  In your JMS Communication Channel, Parameter Tab -> Advanced Tab, you need to Check " Adapter Specific Message Attribute"
    3. Then Check "Specify Additional JMS Message Properties
      Click "+" to add your property name, it should match the property name mentioned in step 1. e.g. "MsgType"
    4. In "Process" tab, you specify message Selector:
        e.g. MsgType = Positive"
    After you have done above step, this JMS adapter only pick message of the Property value "MsgType" equals to "Postive"
    You can create additonal JMS commnunication channels that polling from same queue, but only for different type of message: e.g. "Negative"
    Regards !
    Liang

  • JMS Message Property

    Hello Experts,
    we have a JMS to JMS scenario. A third party system sends a message to the JMS Queue (JMS Provider is the J2EE SAP Web AS, XI system). Via JMS Message Selector (configured the JMS Sender Adapter) the right integrationprocess get the message.The integrationsprocess sends the message to another JMS Queue. Because the integrationprocess have lost the JMS Header information (message properties) we configured the JMS Sender Adapter and the JMS Receiver Adapter to copy message properties. Described under help.sap.com:
    you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (Maximum of 10).
    ·        In the table, enter the names of the JMS message properties whose values are to be included in the message header of the XI message.
    The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.
    You can enter more than 10 properties in the table, but only the first 10 are taken into account.
    The attribute namespace for the adapter is http://sap.com/xi/XI/System/JMS.
    I debug and saw that the message properties was sucessfully copied to the header (receiver queue). But now if I use another selector the message will not found. It doesn't work with a third party system and with SAP XI (I've created another integrationsprocess, to read the queue)
    Thanks very much, for your help.
    Regards,
    Jürgen

    Hi there,
    there is a way (and a section somewhere in the help) to set adapter specific attributes in java mappings.
    The java doc for that can be found here:
    https://help.sap.com/javadocs/NW04/current/pi/index.html
    Hope that helps sbd who also has that prob.
    Cheers,
    Helge

  • Wsdl validation fails for request message payload from custom schema

    Hello. I am having a problem which I cannot seem to work around. I have defined a schema to serve as a template for the request message payload of a bpel process. The schema is very simple:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:logininfo="http://sru/logininfo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sru="http://sru/profile" targetNamespace="http://sru/logininfo" elementFormDefault="qualified" attributeFormDefault="unqualified">
         <xs:import namespace="http://sru/profile" schemaLocation="http://sru/profile.xsd"/>
         <xs:element name="logininfo" type="logininfo:logininfoType">
              <xs:annotation>
                   <xs:documentation>Needed information for SRU Login</xs:documentation>
              </xs:annotation>
         </xs:element>
         <xs:complexType name="logininfoType">
              <xs:all>
                   <xs:element name="email" type="sru:emailType"/>
                   <xs:element name="password">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="32"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="product" type="xs:string"/>
                   <xs:element name="ip" type="sru:ipType"/>
                   <xs:element name="timestamp" type="xs:dateTime"/>
                   <xs:element name="xpath" type="xs:string"/>
              </xs:all>
         </xs:complexType>
    </xs:schema>
    (The schema depends on another, which I have placed at the end of this message).
    I import it into the bpel process designer with no problems.
    Upon defining the payload of the request message type to be the {http://sru/logininfo}logininfoType, the WSDL file does not validate anymore:
    Validating WSDL...
    Validating E:\OraBPELPM_1\integration\jdev\jdev\mywork\SRU\BPELProcess5\BPELProcess5.wsdl
    Schema type not found: QName(http://sru/logininfo, logininfoType)
    Validate WSDL: has errors.
    Any ideas?
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns="http://sru/profile" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sru="http://sru" xmlns:xdb="http://xmlns.oracle.com/xdb" targetNamespace="http://sru/profile" elementFormDefault="qualified" attributeFormDefault="unqualified" xdb:schemaURL="http://sru/profile.xsd">
         <xs:annotation>
              <xs:documentation>Joel Salmerón Viver</xs:documentation>
              <xs:documentation xml:lang="en">General purpose internet profile schema</xs:documentation>
         </xs:annotation>
         <xs:simpleType name="emailType">
              <xs:restriction base="xs:string">
                   <xs:maxLength value="255"/>
                   <xs:pattern value="[a-z0-9]([a-z0-9\._][a-z0-9]+)*@[a-z0-9]([a-z0-9\.\-][a-z0-9]+)*\.[a-z]{2,6}"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="ipType">
              <xs:restriction base="xs:string">
                   <xs:pattern value="((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="labelType">
              <xs:restriction base="xs:string">
                   <xs:maxLength value="32"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:complexType name="addressType" xdb:SQLType="ADDRESSTYPE" xdb:SQLSchema="SRU">
              <xs:all>
                   <xs:element name="lines" type="linesType" minOccurs="0" xdb:SQLName="lines" xdb:SQLType="LINESTYPE" xdb:SQLSchema="SRU" xdb:SQLInline="true">
                        <xs:key name="linesKey">
                             <xs:selector xpath="line"/>
                             <xs:field xpath="@num"/>
                        </xs:key>
                   </xs:element>
                   <xs:element name="city" xdb:SQLName="city" xdb:SQLType="VARCHAR2" xdb:SQLInline="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="64"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="postalcode" xdb:SQLName="postalcode" xdb:SQLType="VARCHAR2" xdb:SQLInline="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="16"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="countrycode" xdb:SQLName="countrycode" xdb:SQLType="VARCHAR2" xdb:SQLInline="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:length value="2"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
              </xs:all>
              <xs:attribute name="label" type="labelType" use="required" xdb:SQLName="label" xdb:SQLType="VARCHAR2"/>
              <xs:attribute name="verified" type="xs:boolean" use="required" xdb:SQLName="verified" xdb:SQLType="RAW"/>
         </xs:complexType>
         <xs:complexType name="lineType" xdb:SQLType="LINETYPE" xdb:SQLSchema="SRU">
              <xs:simpleContent>
                   <xs:extension base="xs:string">
                        <xs:attribute name="num" type="xs:positiveInteger" use="required" xdb:SQLName="num" xdb:SQLType="NUMBER"/>
                   </xs:extension>
              </xs:simpleContent>
         </xs:complexType>
         <xs:complexType name="loginType" xdb:SQLType="LOGINTYPE" xdb:SQLSchema="SRU">
              <xs:all>
                   <xs:element name="registered_date" type="xs:dateTime" xdb:SQLType="TIMESTAMP WITH TIME ZONE" xdb:SQLName="registered_date" xdb:SQLInline="true"/>
                   <xs:element name="lastlogin_date" type="xs:dateTime" xdb:SQLType="TIMESTAMP WITH TIME ZONE" xdb:SQLName="lastlogin_date" xdb:SQLInline="true"/>
                   <xs:element name="lastlogin_ip" type="ipType" minOccurs="0" xdb:SQLName="lastlogin_ip" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <xs:element name="lastlogin_time" type="xs:time" minOccurs="0" xdb:SQLType="TIMESTAMP WITH TIME ZONE" xdb:SQLName="lastlogin_time" xdb:SQLInline="true"/>
              </xs:all>
              <xs:attribute name="product" use="required" xdb:SQLName="product" xdb:SQLType="VARCHAR2">
                   <xs:simpleType>
                        <xs:restriction base="xs:string">
                             <xs:maxLength value="32"/>
                        </xs:restriction>
                   </xs:simpleType>
              </xs:attribute>
              <xs:attribute name="status" type="xs:integer" use="required" xdb:SQLName="status" xdb:SQLType="NUMBER"/>
         </xs:complexType>
         <xs:complexType name="addressesType" xdb:SQLType="ADDRESSESTYPE" xdb:SQLSchema="SRU">
              <xs:sequence>
                   <xs:element name="address" maxOccurs="unbounded" xdb:defaultTable="PROFILE_ADDRESSES" xdb:SQLName="address" xdb:SQLSchema="SRU" xdb:SQLInline="true" xdb:defaultTableSchema="SRU" xdb:SQLCollType="address360_COLL" xdb:SQLCollSchema="SRU" xdb:maintainOrder="false">
                        <xs:complexType xdb:SQLType="address358_T" xdb:SQLSchema="SRU">
                             <xs:complexContent>
                                  <xs:extension base="addressType"/>
                             </xs:complexContent>
                        </xs:complexType>
                   </xs:element>
              </xs:sequence>
              <xs:attribute name="main" type="labelType" use="required" xdb:SQLName="main" xdb:SQLType="VARCHAR2"/>
         </xs:complexType>
         <xs:complexType name="phonesType" xdb:SQLType="PHONESTYPE" xdb:SQLSchema="SRU">
              <xs:sequence>
                   <xs:element name="phone" type="phoneType" maxOccurs="unbounded" xdb:SQLName="phone" xdb:SQLType="PHONETYPE" xdb:SQLSchema="SRU" xdb:SQLInline="true" xdb:SQLCollType="phone363_COLL" xdb:SQLCollSchema="SRU" xdb:maintainOrder="false"/>
              </xs:sequence>
              <xs:attribute name="main" type="labelType" use="required" xdb:SQLName="main" xdb:SQLType="VARCHAR2"/>
         </xs:complexType>
         <xs:complexType name="loginsType" xdb:SQLType="LOGINSTYPE" xdb:SQLSchema="SRU">
              <xs:sequence>
                   <xs:element name="login" type="loginType" maxOccurs="unbounded" xdb:SQLName="login" xdb:SQLType="LOGINTYPE" xdb:SQLSchema="SRU" xdb:SQLInline="true" xdb:SQLCollType="login366_COLL" xdb:SQLCollSchema="SRU" xdb:maintainOrder="false">
                        <xs:key name="loginKey">
                             <xs:selector xpath="."/>
                             <xs:field xpath="@product"/>
                        </xs:key>
                   </xs:element>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="phoneType" xdb:SQLType="PHONETYPE" xdb:SQLSchema="SRU">
              <xs:simpleContent>
                   <xs:extension base="phonenumberType"/>
              </xs:simpleContent>
         </xs:complexType>
         <xs:complexType name="profileType" xdb:SQLType="PROFILETYPE" xdb:SQLSchema="SRU">
              <xs:all>
                   <xs:element name="firstname" xdb:SQLName="firstname" xdb:SQLType="VARCHAR2" xdb:SQLInline="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="64"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="surname1" xdb:SQLName="surname1" xdb:SQLType="VARCHAR2" xdb:SQLInline="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="64"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="surname2" minOccurs="0" xdb:SQLName="surname2" xdb:SQLType="VARCHAR2" xdb:SQLInline="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="64"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="gender">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:length value="1"/>
                                  <xs:enumeration value="M"/>
                                  <xs:enumeration value="F"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="alt_email" type="emailType" minOccurs="0" xdb:SQLName="alt_email" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <xs:element name="addresses" type="addressesType" minOccurs="0" xdb:SQLName="addresses" xdb:SQLType="ADDRESSESTYPE" xdb:SQLSchema="SRU" xdb:SQLInline="true">
                        <xs:key name="addressesKey">
                             <xs:selector xpath="address"/>
                             <xs:field xpath="@label"/>
                        </xs:key>
                        <xs:keyref name="addressRef" refer="addressesKey">
                             <xs:selector xpath="."/>
                             <xs:field xpath="@main"/>
                        </xs:keyref>
                   </xs:element>
                   <xs:element name="phones" type="phonesType" minOccurs="0" xdb:SQLName="phones" xdb:SQLType="PHONESTYPE" xdb:SQLSchema="SRU" xdb:SQLInline="true">
                        <xs:key name="phoneKey">
                             <xs:selector xpath="phone"/>
                             <xs:field xpath="@label"/>
                        </xs:key>
                        <xs:keyref name="phoneRef" refer="phoneKey">
                             <xs:selector xpath="."/>
                             <xs:field xpath="@main"/>
                        </xs:keyref>
                   </xs:element>
                   <xs:element name="language" type="xs:language" xdb:SQLName="language" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <xs:element name="logins" type="loginsType" minOccurs="0" xdb:SQLName="logins" xdb:SQLType="LOGINSTYPE" xdb:SQLSchema="SRU" xdb:SQLInline="true">
                        <xs:key name="loginsKey">
                             <xs:selector xpath="login"/>
                             <xs:field xpath="@product"/>
                        </xs:key>
                   </xs:element>
                   <xs:element name="origin" minOccurs="0" xdb:SQLName="origin" xdb:SQLType="VARCHAR2" xdb:SQLInline="true">
                        <xs:annotation>
                             <xs:documentation>iso3166 a2 country code</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:length value="2"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="creation_date" type="xs:dateTime" xdb:SQLType="TIMESTAMP WITH TIME ZONE" xdb:SQLName="creation_date" xdb:SQLInline="true"/>
                   <xs:element name="modified_date" type="xs:dateTime" xdb:SQLType="TIMESTAMP WITH TIME ZONE" xdb:SQLName="modified_date" xdb:SQLInline="true"/>
                   <xs:element name="password" xdb:SQLName="password" xdb:SQLType="VARCHAR2" xdb:SQLInline="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="32"/>
                                  <xs:pattern value="[a-zA-Z0-9]+"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="hint" minOccurs="0" xdb:SQLName="hint" xdb:SQLType="VARCHAR2" xdb:SQLInline="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="32"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="additional" type="xs:anyType" minOccurs="0">
                        <xs:annotation>
                             <xs:documentation>future expansion</xs:documentation>
                        </xs:annotation>
                   </xs:element>
              </xs:all>
              <xs:attribute name="email" type="emailType" use="required" xdb:SQLName="email" xdb:SQLType="VARCHAR2"/>
              <xs:attribute name="active" type="xs:boolean" use="required"/>
         </xs:complexType>
         <xs:complexType name="phonenumberType" xdb:SQLType="PHONENUMBERTYPE" xdb:SQLSchema="SRU">
              <xs:simpleContent>
                   <xs:extension base="xs:string">
                        <xs:attribute name="label" type="labelType" use="required" xdb:SQLName="label" xdb:SQLType="VARCHAR2"/>
                   </xs:extension>
              </xs:simpleContent>
         </xs:complexType>
         <xs:element name="profile" type="profileType" xdb:defaultTable="PROFILES" xdb:SQLName="profile" xdb:SQLType="PROFILETYPE" xdb:SQLSchema="SRU" xdb:defaultTableSchema="SRU"/>
         <xs:complexType name="linesType" xdb:SQLType="LINESTYPE" xdb:SQLSchema="SRU">
              <xs:sequence>
                   <xs:element name="line" type="lineType" maxOccurs="unbounded" xdb:SQLName="line" xdb:SQLType="LINETYPE" xdb:SQLSchema="SRU" xdb:SQLInline="true" xdb:SQLCollType="line354_COLL" xdb:SQLCollSchema="SRU" xdb:maintainOrder="false"/>
              </xs:sequence>
         </xs:complexType>
    </xs:schema>

    IT would help if the people that are working this issue would post the resolve of their problems. Every post I see with this problem someone from oracle replies with needing the source project to replicate the issue and the thread dies....

Maybe you are looking for