Tim-Thanks for the comprehensive explanationI found this link helpful for CICS 
transactions
http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhtl/topics/dfhtl_http11serverintro.htm
 
do you need IIS running..is there a way to perhaps use Apache with mod_jk just 
to ensure http-1.1 <chunked encoding/content-length> bilateral connections are 
supported?
Then once all your staging environments are operational then sub in IIS with 
all those mysterious dlls?
Martin ______________________________________________Disclaimer and 
confidentiality noteEverything in this e-mail and any attachments relates to 
the official business of Sender. This transmission is of a confidential nature 
and Sender does not endorse distribution to any party other than intended 
recipient. Sender does not necessarily endorse content contained within this 
transmission.> From: [EMAIL PROTECTED]> To: users@tomcat.apache.org> Subject: 
RE: Content_Length Problem> Date: Sat, 5 Jan 2008 22:41:31 +1300> > From what I 
can tell there's nothing (technically) wrong with what Tomcat> + ISAPI 
Redirector is doing here.> > What's actually happening here is that Tomcat 
internally only provides a> Content-Length header if it can determine the 
length of the content easily> (e.g. it's a static file) or the Servlet 
generating dynamic content> provides one itself.> Any other response content is 
just written out to whatever connector> (HTTP/AJP) is being used. If it's via 
the HTTP connector, then chunk> encoding is automatically provided. Likewise 
with the AJP connector and> mod_jk in Apache - chunk encoding is automatically 
provided by Apache for> all responses that would benefit from it (mod_jk 
doesn't do anything> special to achieve this).> IIS being the braindead poor 
cousin is not so accomodating, as it requires> any ISAPI extension to not only 
tell it that it would like to use> persistent HTTP connections, but also 
provide all of the HTTP level> details (including headers and content encoding) 
to make it work. All IIS> does is detect if you've done enough to make the 
connection persistent and> keep open/close the connection if you haven't.> 
Since the current ISAPI redirector doesn't implement chunk encoding, IIS> 
whacks in a Connection: close header on all responses without> Content-Length 
and closes the connection to the client.> > Closing the connection is actually 
a valid method of terminating a> response message in HTTP 1.1 (as Rainer 
alluded to, the statement> attributed to IBM below about a Content-Length being 
required in HTTP 1.1> is wrong in a lot of ways - indeed in some responses 
Content-Length must> not be included).> 
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4 and> 
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.10 seem to be> 
pretty clear on how an HTTP application that doesn't support persistent> 
connections should behave - what IIS + ISAPI Redirector is doing is (from> what 
I can tell) valid HTTP 1.1, it's just not polite in this day and age.> > The 
fact that your web service call works when accessing Tomcat directly> via the 
HTTP connector implies that the client can handle chunk encoded> responses, 
since the Tomcat HTTP connector provides this for anything that> doesn't have a 
Content-Length set, and your logs indicate your web app> isn't setting one. I 
might have missed some magic Content-Length> calculation for small responses in 
the Tomcat HTTP connector, but I'd> imagine that wouldn't work in all cases 
(e.g if you had a really large> response message).> You could test this theory 
by sniffing the network traffic when connecting> directly to Tomcat, by 
installing Apache + mod_jk, or by using my patched> IIS connector from 
http://sourceforge.net/projects/timsjk (the latter two> options will provide 
chunked encoding on all responses coming from Tomcat> that don't already 
provide a Content-Length.> (btw I'd be very surprised if my chunked encoding 
patch attached to the BZ> issue worked, as it hasn't been updated to trunk for 
quite a while.> http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6.1 
states that> HTTP 1.1 applications must be able to receive chunk encoded 
responses so> if adherence to HTTP 1.1 is important in your environment, you 
should be> able to argue that this is a valid solution.> > Other more desperate 
options would involve content buffering Servlet> Filters that wrap the response 
to calculate and set the Content-Length> headers (there were a couple floating 
around the Tomcat world a while> back) and hacking your web service toolkit to 
buffer messages pre sending> and set the Content-Length header. I've used the 
filter approach in the> past (pre HTTP 1.1), and it might be workable as long 
as your web services> responses have predictably and reasonably small content 
sizes.> > cheers> tim> > -----Original Message-----> From: Woytasik Joe 
[mailto:[EMAIL PROTECTED] > Sent: Saturday, 5 January 2008 10:10 a.m.> To: 
Tomcat Users List> Subject: RE: Content_Length Problem> > Rainer,> > Thanks for 
the quick response! > > I am able to repeat this request, and each time I get 
the same response.> The logging level is set to debug, but unfortunately I am 
unable to send> the log file (company policy). I am going to scrub the log file 
to remove> any sensitive information, I will send that your way shortly.> > I 
did some network sniffing and CONTENT_LENGTH is not sent. > > I built a new 
isapi_redirect.dll using the patch provided in Bugzilla.> This patch was 
supposed to allow chunked encoding, but I am not sure if I> applied it right. 
Is there a registry setting that I need to change to> allow chunked encoding 
with this patch, or does it do it automatically?> > Thanks-> Joe > > 
-----Original Message-----> From: Rainer Jung [mailto:[EMAIL PROTECTED]> Sent: 
Friday, January 04, 2008 2:06 PM> To: Tomcat Users List> Subject: Re: 
Content_Length Problem> > Hi Joe,> > are you able to reproduce the behaviour 
with few, maybe only a single> request? If so: you can increase JkLogLevel to 
"debug" (not recommended> for high load production size, because it produces a 
lot of log lines),> reproduce the problem and make the log file available.> > 
What I didn't really understand from your post: do you know, if the> 
Content-Length header gets send or not? How do you know? Did you sniff the> 
network traffic or do you only know from the CICS behaviour?> > Lastly: 
HTTP/1.1 responses without Content-Length headers are valid if> they are using 
chunked encoding (Transfer-Encoding: chunked). I think at> the moment the isapi 
redirector does not use chunked encoding (didn't yet> test, but there's an open 
RFE to implement chunked encoding in the isapi> redirecotr), but I want to 
clarify the absolute statement concerning the> http protocol.> > Chunked 
encoding replaces the content-length header with sending the> number of bytes 
available in front of every chunk, s.t. the receiving node> knows, how much 
data to expect, without the sending node needing to know> the full size before 
sending. Dynamically generated content often uses> chunked encoding to prevent 
the need of buffering the whole reposne before> sending.> > Regards,> > Rainer> 
> > Woytasik Joe schrieb:> > I have a custom webservice hosted on IIS 6.0 and 
Tomcat 6, and I am > > using the latest version of the isapi_redirect.dll. The 
problem > > occurs when a CICS mainframe application tries to call this> 
webservice.> > Everything appears to work fine, but the CICS application 
receives a > > response indicating a zero length message. I can view the 
message > > being sent from the webservice and this is definitely not the case 
> > (have also taken several packet traces to confirm this). We sent our > > 
problem to the folks over at IBM and they say that the CONTENT_LENGTH > > is 
not being set.> > > > Here is their response: > > > > The problem is that there 
isn't a Content-Length header sent by the > > IIS/Tomcat Server. CICS receives 
the headers and finds it is an> > HTTP/1.1 response for a Connection: Close. 
There isn't a > > Content-Length header so there can't be any user data 
(HTTP/1.1 has to> > > supply Content-Length) so DFHWBCL just closes the 
session. PI domain > > then indicates that it failed to receive a response. The 
customer > > needs to investigate why their IIS server didn't return a > > 
Content-Length header.> > . > > The Content-Length header is mandatory for 
CICS' HTTP/1.1 > > conversations. This is documented in the CICS/TS 3.1 
Internet Guide, > > section 1.3.11.1 ("CICS Web support behavior in compliance 
with > > HTTP/1.1"); this chapter documents the requirement in a section 
titled> > > "New Behavior for CICS TS Version 3", under the first item "CICS > 
> checks inbound messages for compliance with HTTP/1.1, and handles or > > 
rejects non-compliant messages":> > Note: CICS requires the Content-Length 
header on all inbound> > HTTP/1.1 messages that have a message body. If a 
message body is > > present but the header is not provided, or its value is 
inaccurate, > > the socket receive for the faulty message or for a subsequent 
message > > can produce unpredictable results. For HTTP/1.0 messages that have 
a > > message body, the Content-Length header is optional.> > . > > The reason 
this is mandatory under CICS/TS 3.1, is due to our > > adherance to HTTP/1.1 
specifications -- in other words, your HTTP/1.1 > > Web Service PROVIDER 
platform must provide this header, to be> considered compliant.> > . > > Please 
ensure the IIS/Tomcat server sends a proper header.> > > > If we make the same 
request directly to Tomcat using the port number > > it works fine. The problem 
either lies in the isapi_redirect.dll or > > the IIS configuration. Does anyone 
have any ideas on what I can try > > to resolve this? Is there a know bug with 
the isapi_redirect.dll and > > CONTENT_LENGTH?> > > > Thanks-> > Joe> > > > 
This e-mail is confidential. If you are not the intended recipient,> you must 
not disclose or use the information contained in it. If you have> received this 
e-mail in error, please tell us immediately by return e-mail> to [EMAIL 
PROTECTED] and delete the document.> > > > E-mails containing unprofessional, 
discourteous or offensive remarks> violate Sentry policy. You may report 
employee violations by forwarding> the message to [EMAIL PROTECTED]> > > > No 
recipient may use the information in this e-mail in violation of> any civil or 
criminal statute. Sentry disclaims all liability for any> unauthorized uses of 
this e-mail or its contents.> > > > This e-mail constitutes neither an offer 
nor an acceptance of any> offer. No contract may be entered into by a Sentry 
employee without> express approval from an authorized Sentry manager.> > > > 
Warning: Computer viruses can be transmitted via e-mail. Sentry> accepts no 
liability or responsibility for any damage caused by any virus> transmitted 
with this e-mail.> > 
---------------------------------------------------------------------> To start 
a new topic, e-mail: users@tomcat.apache.org To unsubscribe,> e-mail: [EMAIL 
PROTECTED]> For additional commands, e-mail: [EMAIL PROTECTED]> > > 
---------------------------------------------------------------------> To start 
a new topic, e-mail: users@tomcat.apache.org To unsubscribe,> e-mail: [EMAIL 
PROTECTED]> For additional commands, e-mail: [EMAIL PROTECTED]> > > > 
---------------------------------------------------------------------> To start 
a new topic, e-mail: users@tomcat.apache.org> To unsubscribe, e-mail: [EMAIL 
PROTECTED]> For additional commands, e-mail: [EMAIL PROTECTED]> 
_________________________________________________________________
Share life as it happens with the new Windows Live.
http://www.windowslive.com/share.html?ocid=TXT_TAGHM_Wave2_sharelife_012008

Reply via email to