Skip to Content
author's profile photo
Former Member

FYI: ICM 'dies' when creating dynamic BSP-Pages (e.g. image) with no content header/type ...

Hi all,

the past two weeks we had one problem which is solved now:

1) We build up a table where we save images...

2) We have a View using <htmlb:image...> with following constellation:

<htmlb:image src = "zipo/pa/photo.html?userid=<%= model_viewdata->userid. %>"

alt = "Photo: <%= model_viewdata->name. %>"

tooltip = "Photo: <%= model_viewdata->name. %>" />

The file zipo/pa/photo.html is a bsp page where we read the data from the table (oninitialization) depending on userid and generate the photo:

<% call method runtime->server->response->set_header_field

exporting

name = 'content-type'

value = pict_type.

runtime->server->response->set_header_field(

name = 'Content-Length'

value = pict_length ).

runtime->server->response->set_data( pict ).

%>

In a special constellation (programming error) this page was called although no userid was delivered! So the bsp page got initial values for pict_type, pict_length and pict !

So, trying to load this View with this constellation up to 3 times the ICM dies and we had to restart the sap system every time...! In the Trace Log there is an error message: "ERROR: Read icTICMreadFileHeader" !

Although it was an programming error, I want to publish this information as it is a good experience! I also think althaugh it was an error in the program, probably it is possible to produce an error message by the BSP-Team on the bsp page and the ICM doesn't "die"...

Regards

Murat Akpolat

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

2 Answers

  • Posted on Nov 13, 2003 at 01:10 PM

    Hallo Murat,

    We called the emergency rescue service, and supplied them the official data. Here some additional comments.

    (*) I am aware of an error in nearly all kernels where the Content-Length causes problems. The reason is that for example you set 1000 bytes, and then an answer is written as length 1000 bytes to browser. But then GZIP is done, and actual length is only 75 bytes. The GZIP code did NOT reset the content length. So then everyone waits forever for the 1000 bytes to come. Do not set the content-length, and the ICM will do it correctly. This bug has been fixed in latest kernels (last few weeks).

    (*) Also, if you have this code in the onInputprocessing, remember to add a navigation->done() call, and return.

    (*) Please also read: "BSP Programming: Handling Of Non-HTML Documents"

    /people/mark.finnern/blog/2003/09/23/bsp-programming-handling-of-non-html-documents

    I see also your problem description. Effectively when the error happened, you had a content-length = 0. (Not initialized values.) These types of "problems" are to be reported via OSS, for ICM the correct queue is BC-CST-IC. But what the heck, I will just email it over to them.

    regards, brian

    Add comment
    10|10000 characters needed characters exceeded

  • Posted on Nov 17, 2003 at 12:38 PM

    Hallo Murat,

    We have tried a number of times to reproduce the error that you described, but without success. If you should have a small example that shows this error, please open a OSS message on queue BC-CST-IC. We are very interested at looking into this.

    Looking at your text, and the source code, there is a feeling that you might have another problem with your disk. Maybe it is/was full?

    regards, brian

    Add comment
    10|10000 characters needed characters exceeded