One Star

tMDMOutput issue with Partial Update

Hi,
I am re-posting my issue, as it seems to have disappeared without any notification Smiley Sad
I'm using Talend Open Studio for MDM 5.4.1(r111943) to manage a few databases and trying to aggregate user data while retaining all IDs across databases.
Basically I'm using a table with a nested set of two values (Database and ID), which can be repeated multiple times. Creating the first record with the first database and ID (and other data) works normally, but when I try to update the record with a second set of DB+ID values I get the following error:

=== Error ===
org.jboss.ws.core.binding.BindingException: org.jboss.ws.core.jaxrpc.binding.jbossxb.UnmarshalException: Failed to parse source: Requested element report is not allowed in this position in the sequence. The next element should be xml - Line: 0


I am not sure what exactly is the problem and the documentation on the partial update does not include e.g. what should the XML look like, etc. Also a search for this problem yielded no results (related to talend)... I suspect database_id has some problems with its schema, but have no idea what those could be...
Also:
Pivot = "/Users/database_id"
Key = "" (also tried ".")
database_id is an enum type with 2 options (as strings)
I'm attaching the XML schema and the XML for the tMDMOutput component.
Here's the XML schema for the users table:




















At this point I am at a loss and any help/ideas would be greatly appreciated!
Thanks in advance,
vlsi

7 REPLIES
Employee

Re: tMDMOutput issue with Partial Update

Hi,
Sorry to hear a previous post has gone missing (forum administrators may look into this in case there's an actual issue there).
Could you provide the complete exception (not only the top level message but everything):
org.jboss.ws.core.binding.BindingException: org.jboss.ws.core.jaxrpc.binding.jbossxb.UnmarshalException: Failed to parse source: Requested element report is not allowed in this position in the sequence. The next element should be xml - Line: 0

Please look in server's log (you may right on your MDM server in the "Server explorer" view and select "View log") if there isn't any obvious message that gives a hint on what's wrong.
One Star

Re: tMDMOutput issue with Partial Update

Hi fhuaulme,
thanks for the fast reply. Actually Shong mailed me shortly after it disappeared to check what happened to my topic, but since I haven't heard from him in a while (and haven't fixed the problem yet), decided to re-post.
Here's the full error log:
ERROR SOAP request exception
org.jboss.ws.WSException: org.jboss.ws.core.binding.BindingException: org.jboss.ws.core.jaxrpc.binding.jbossxb.UnmarshalException: Failed to parse source: Requested element report is not allowed in this position in the sequence. The next element should be xml
at org.jboss.ws.core.soap.XMLContent.unmarshallObjectContents(XMLContent.java:250)
at org.jboss.ws.core.soap.XMLContent.transitionTo(XMLContent.java:97)
at org.jboss.ws.core.soap.SOAPContentElement.transitionTo(SOAPContentElement.java:140)
at org.jboss.ws.core.soap.SOAPContentElement.getObjectValue(SOAPContentElement.java:171)
at org.jboss.ws.core.EndpointInvocation.transformPayloadValue(EndpointInvocation.java:263)
at org.jboss.ws.core.EndpointInvocation.getRequestParamValue(EndpointInvocation.java:115)
at org.jboss.ws.core.EndpointInvocation.getRequestPayload(EndpointInvocation.java:135)
at org.jboss.ws.core.server.DelegatingInvocation.getArgs(DelegatingInvocation.java:82)
at org.jboss.wsf.container.jboss42.InvocationHandlerEJB21.getMBeanInvocation(InvocationHandlerEJB21.java:169)
at org.jboss.wsf.container.jboss42.InvocationHandlerEJB21.invoke(InvocationHandlerEJB21.java:144)
at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:220)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:408)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:272)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:189)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:122)
at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:393)
at org.apache.catalina.authenticator.MDMSingleSignOn.invoke(MDMSingleSignOn.java:73)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.jboss.ws.core.binding.BindingException: org.jboss.ws.core.jaxrpc.binding.jbossxb.UnmarshalException: Failed to parse source: Requested element report is not allowed in this position in the sequence. The next element should be xml
at org.jboss.ws.core.jaxrpc.binding.JBossXBDeserializer.deserialize(JBossXBDeserializer.java:111)
at org.jboss.ws.core.jaxrpc.binding.JBossXBDeserializer.deserialize(JBossXBDeserializer.java:62)
at org.jboss.ws.core.binding.DeserializerSupport.deserialize(DeserializerSupport.java:60)
at org.jboss.ws.core.soap.XMLContent.unmarshallObjectContents(XMLContent.java:180)
... 37 more
Caused by: org.jboss.ws.core.jaxrpc.binding.jbossxb.UnmarshalException: Failed to parse source: Requested element report is not allowed in this position in the sequence. The next element should be xml
at org.jboss.ws.core.jaxrpc.binding.jbossxb.JBossXBUnmarshallerImpl.unmarshal(JBossXBUnmarshallerImpl.java:65)
at org.jboss.ws.core.jaxrpc.binding.JBossXBDeserializer.deserialize(JBossXBDeserializer.java:103)
... 40 more
Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source: Requested element report is not allowed in this position in the sequence. The next element should be xml
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:179)
at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:126)
at org.jboss.ws.core.jaxrpc.binding.jbossxb.JBossXBUnmarshallerImpl.unmarshal(JBossXBUnmarshallerImpl.java:61)
... 41 more
Caused by: org.jboss.xb.binding.JBossXBRuntimeException: Requested element report is not allowed in this position in the sequence. The next element should be xml
at org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding$1.startElement(SequenceBinding.java:219)
at org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding$Cursor.startElement(ModelGroupBinding.java:159)
at org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:364)
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$DelegatingContentHandler.startElement(SaxJBossXBParser.java:324)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:175)
... 43 more

Thanks!
Employee

Re: tMDMOutput issue with Partial Update

Could you check the XML of the record you send to MDM? (use a tLogRow for example).
One Star

Re: tMDMOutput issue with Partial Update

Hi,
main output comes empty, here's the reject one (removed any real DB values, but they were correct). Or did you need a tLogRow before the tMDMOutput? This tLogRow is set to table and I notice it's not only xml that's coming out, is that normal?
|=---+----------+---------+---------+-----------------------+------------+-----------------------+---------+--------+----------------+------------------------------------------------------------------------------------------------------------------------------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=|
|id |first_name|last_name|full_name|created_at |updated_by |updated_at |is_active|database|db_id |xml |errorCode|errorMessage |
|=---+----------+---------+---------+-----------------------+------------+-----------------------+---------+--------+----------------+------------------------------------------------------------------------------------------------------------------------------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=|
|ID |fname |lname |fullname |2014-05-14T14:58:48.742|000 |2014-05-14T14:58:48.742|true |DBname |DBID |

ID

DBname
DBID


|null |org.jboss.ws.core.binding.BindingException: org.jboss.ws.core.jaxrpc.binding.jbossxb.UnmarshalException: Failed to parse source: Requested element report is not allowed in this position in the sequence. The next element should be xml - Line: 0|
'----+----------+---------+---------+-----------------------+------------+-----------------------+---------+--------+----------------+------------------------------------------------------------------------------------------------------------------------------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------'
One Star

Re: tMDMOutput issue with Partial Update

Hi again,
if nothing comes to mind could someone please post a working partial update config, so that I can compare (and adapt I guess)? Thanks in advance!
One Star

Re: tMDMOutput issue with Partial Update

Hi, I have the same error, have you solved the pb?
One Star

Re: tMDMOutput issue with Partial Update

Hi msallami,
unfotrunately I have not... I made a workaround by just putting separate id fields for each DB, it's not a real solution, but it's doable for me as I only have a fixed set of 2 databases (for now). The problem is if you want to make it dynamic/extendable after that, you have to rewrite a lot of the logic, but nothing else I could do for now, as I am out of time for this project.
If you come across a solution, please post it here, thanks!