Hi all,
According to the message:
"A message was received that was not expected. Please report the error to Progress Software Corporation."
Support link can be found here: www.progress.com/.../support-services
I suspect the answer you will receive from Progress is that you should upgrade your Progress version. 10.1D is pretty ancient these days. 10.2B08 should really be your minimum, although if you can compile your source there's not many reasons to stay away from 11.x.
> progress 10.1D
Does it exist?
> Unexpected message code received: expected 21 received 70. (5478)
> PROGRESS AppServer disconnect failure. (5470)
----------------------------------------------------------------------
KB-P13627: Connection to Appserver/Aia with webserver authorization enabled fails.
----------------------------------------------------------------------
Status: Unverified
FACT(s) (Environment):
Tomcat
SYMPTOM(s):
Web client application fails to connect to AppServer / Aia
Application executes the following connection statement:
v-return-code = v-handle-corppro:CONNECT ("-URL http://username:password@machinename:8080/aia/Aia").
PROGRESS AppServer network protocol mismatch. (5565)
Application server connect failure. (5468)
Unexpected message code received: expected <exp_code> received <msg_code>. (5478)
Web Server authorization is enabled
Tomcat is configured to allow basic authorization
CAUSE:
Http-method security is enabled within the $TOMCAT_HOME/webapps/aia/WEB-INF/web.xml file.
The Security permissions within the web.xml file restrict http connections.
FIX:
Comment out the lines that set the http-method security from the web.xml file <security-constraint> element.
Example of what web.xml security-constraint element.
<security-constraint>
- <web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/engineering/*</url-pattern>
<url-pattern>/Aia/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
- <auth-constraint>
<role-name>tomcat_users</role-name>
</auth-constraint>
</security-constraint>
- <login-config>
<auth-method>BASIC</auth-method>
<realm-name>Admin</realm-name>
</login-config>
<LogSetter name="example_servlet_log" path="/tomcat/servlet_aia.log"
verbosityLevel="DEBUG" servletLogger="true" />
</web-app>
The strange thing is that this is in a program that processes messages from sonic and the only suspicion I have at the moment is that the message it is processing is to big. This program has processed milions of messages from Sonic but for some reason it ends up in this situation and stops further processing. And it is also not always "crashing" this way. The message it is processing (and putting in a CLOB) is approx. 19 Mb in size.
You can get a protrace file for these errors.
About hte progress version. It is upgraded to 10.2B :)
I haven't seen a protrace from when this happens..
I meant you can force Progress to generate a protrace file on one of these errors using a little trick:
Create a copy of promsgs file. Open it in any hex editor, find the text of message and replace (important!! don't add new chars!) the first two characters by "%G".
For example, replace:
"Unexpected message code received: expected %d received %d . (5478)"
by:
"%Gexpected message code received: expected %d received %d . (5478)"
Set the PROMSGS variable to the modified file for the selected processes, e.g. only for appservers.
Next time you will get the error 5478 a session will crash but it will generate a protrace file.
I will try this and keep you all posted. Probably under a new progress ID (since this one is of my previous employer). It happened once a month now (although the large messages are received every week). So it could take some time.