on 09-20-2010 1:22 PM
Hi All ,
I'm using MII 12.1 , and I'm trying to post messages from transaction to the message listener of same server .
I tried most of the options informed through so many blogs , but I'm getting the response as a FATAL ERROR and MESSAGE WAS NOT RECEIVED as a string response and the xml response is null .
The url :
http://<server Name>:<port>/XMII/Illuminator?service=WSMessageListener&mode=WSMessageListenerServer&NAME=<message name>&Content-Type=text/xml
and POST Data is an XML of a Tag Query.
Still , it is showing the above error.
Would anyone suggest a solution for it please.
Hi,
if you are using the HTTP Post action in your transaction to call the WSMessageListener webservice, have you set Encoding = UTF-8? I have also used Content-type "text/xml" in the Configuration of the action instead of adding it to the URL.
Are there any entries in the NetWeaver Logs when this error is displayed in your tran?
By the way, you can add "&Session=false" to you URL to avoid MII creating a session for every webservice call.
Michael
Edited by: Michael Otto on Sep 20, 2010 3:26 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Everyone , Thanks for your Quick responses .
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Otto ,
I'm clear with message clean up rules .But , My actual Query is :
In real time scenario , suppose I'm receiving a message based on which I'm inserting data into an external database like Oracle. I have to delete these messages only after success fully Inserting data inti external database Server. If the connection is failed then the data buffering feature will store the data and retry based on the configuration we set in the Data server .Now if the messages are keep on adding and execcuting a transaction so that the data in buffer also gets added until the connection establishes(active) again.
In Such scenario the MII database , is it capable of handling entire data ?
How do we check and delete the data in Data buffer to update Messages using clean up rules in message services?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
if your MII internal database can hold all messages that come in or be buffered depends on the number and size of the messages, the number of messages being buffered and the available database space. If those basic conditions are ok, MII will most likely be able to handle the messages.
The cleanup of messages that caused entries in the data buffer is not quite clear to me, as we do not use data buffering. As an alternative, you can set messages that cause an error (e.g. because a database is down) to status failed (terminate the transaction that processes the message with error). Schedule a job that periodically reprocesses failed messages. This way the cleanup rule deletes only successful messages.
Michael
Thank you Otto , I got it now.
May I know where these messages are getting stored , like is it the same MII Database in which the Data Buffering Entries ,Under Data Services , are stored?
Is there any way to extend its capacity as in real time scenario very huge amount of data is to be stored and Processed. Like Customisation of the MII data base or something.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The incoming messages are stored in the internal MII (NetWeaver) database. You can set up the system to the size you need.
Our experience with huge messages (over 1MB) is good. You should set up [cleanup rules|http://help.sap.com/saphelp_mii121/helpdata/en/43/e80b59ad40719ae10000000a1553f6/frameset.htm] to delete successfully processed messages so your database will not run into a shortage.
Michael
Hi All ,
thanks for your suggestions. I found something Crazy that It worked now even though I violated all suggestions except removing the default Content Type. I don't know why it wasn't working.
I have a doubt : I thought the message Name should be Unique , but it is accepting Multiple Messages with same Name . Is there any Procedure to validate this ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You can consider the message name of the WSMessageListener as a "queue" that accepts a payload. The handling of the contents is up to you.
If you want to send different types of messages, you should use different names, one for each message type.
As an alternative, you can use the same name for all types of messages and define a Processing Rule that calls a BLT that sorts out the different message types. But I guess this may lead to misunderstandings.
Michael
Thanks everyone for your immediate response.
Otto : I tried Encoding = UTF-8 , "&Session=false"
Good : I included IllumLoginName and IllumLoginPassword in the URL
Schrampf : I tried "text/xml" in place of "application/x-www-form-urlencoded" in Content Type Input
But still I'm getting the following Error Log in NWA :
Message was not received
[EXCEPTION]
com.sap.xmii.Illuminator.logging.LHException: Message was not received
at com.sap.xmii.Illuminator.services.handlers.WSMessageListener.getPayload(WSMessageListener.java:161)
at com.sap.xmii.Illuminator.services.handlers.WSMessageListener.processRequest(WSMessageListener.java:76)
at com.sap.xmii.Illuminator.services.ServiceManager.run(ServiceManager.java:68)
at com.sap.xmii.servlet.Illuminator.service(Illuminator.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:162)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:81)
at com.sap.xmii.system.SecurityFilter.doFilter(SecurityFilter.java:96)
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:73)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:461)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:298)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:396)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:385)
at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:48)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:76)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:243)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:78)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:43)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:428)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:247)
at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:45)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:115)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:96)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:314)
If you find out the problem , then please provide me the solution and the details of the problem.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
One thought:
In the Error message, the top "at" entry is "getPayload". The PostData property of the HTTP Post action is of type Text. Did you assign the XML output directly to it? What happens if you save the XML output of the Tag query in a local text property and assign this local to the PostData? Maybe there is a problem with the Post payload.
Michael
I was receiving a similar error and what fixed it for me was adding "text/xml" to the Content Type input for the HTTP Post action's Configuration option. This is what Mike stated as well. I also tried attaching it to the URL as you did and it worked. But make sure that you take the default value of "application/x-www-form-urlencoded" out of the HTTP Post action's configuration menu. If this is left in and you attach ContentType=text/xml to the URL you will still receive this error.
IllumLoginName and IllumLoginPassword are not needed if you are passing this information using the Credential Alias field.
Edited by: Erik Schrampf on Sep 20, 2010 1:57 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
How are you authenticating? Have you tried including IllumLoginName and IllumLoginPassword in the URL?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
10 | |
5 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.