Plantage programme CGI

configuration Apache, Zend et PHP , Web services
Répondre
Athalaric44
Messages : 21
Enregistré le : ven. 22 juil. 2016, 13:54:28

Plantage programme CGI

Message par Athalaric44 »

Bonjour,

nous utilisons avec succès des services rest 400 grâce au serveur Apache de l'iBM i et CGIDEV2.

Cependant, de façon aléatoire, certains programme CGI plantent avec l'erreur :

[Tue Jul 18 17:23:58 2017] [error] [client 172.30.0.178] ZSRV_MSG0107: Premature end of script headers: File name is sin00278.pgm

Apparemment la cause de cette erreur peut être multiple (message très générique)

Ma question est : comment connaitre avec précision la cause de l'erreur ? Les logs du serveur Apache sont bien trop succinctes...

Si j'utilise les commandes suivantes, vais-je avoir plus d'infos ?

chgjobd qhttpsvr/qzhbhttp log(4 00 *seclvl) inqmsgrpy(*dft)
endtcpsvr server(*http) httpsvr(RESTAS400)
strtcpsvr server(*http) httpsvr(RESTAS400)

Merci pour votre aide !

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Entetes

Message par cmasse »

Il semble que vous n'envoyez pas les entêtes HTTP (particulièrement content-type), voyez http://www.perlmonks.org/?node_id=24447

ou bien les retours chariots sont mal interprétés....

Pouvez nous mettre un bout du code RPG ?
Christian Massé (Volubis.fr)

kokoemi
Messages : 2
Enregistré le : mer. 30 août 2017, 13:03:41

Plantage programme CGI

Message par kokoemi »

Bonjour,

J'ai, moi aussi eu le même type d'erreur.

[Wed Aug 30 13:56:54 2017] [error] [client 172.30.141.55] CGI PROGRAM /QSYS.LIB/WWADHESI.LIB/ADH00293.PGM RETURNED EXCEPTION ID MCH3401

[Wed Aug 30 13:56:54 2017] [error] [client 172.30.141.55] ZSRV_MSG0107: Premature end of script headers: File name is ADH00293.pgm

J'ai regardé les entêtes HTTP et le retour chariot utilisé.

Ici un bout de code des déclarations:

dcl-c c_refcomm const('refcomm');
//Caractère "Retour chariot"
dcl-c cCRLF const(x'0d25');
//Header JSON
dcl-c cHeaderJson const('Content-type: text/plain');
//Header HTML
dcl-c cHeaderHTML const('Content-type: text/html');
//Erreur HTTP 404
dcl-c cError404 const('Status: 404 Not Found');
//Erreur HTTP 500
dcl-c cError500 const('Status: 500 Internal Server Error');


Aurez-vous une idée du problème?

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

timeout

Message par cmasse »

Ca peut aussi être du à un trop long temps de traitement de la part du pgm

http://www.lansa.com/support/notes/p0334.htm
Christian Massé (Volubis.fr)

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

deux retours chariot ?

Message par cmasse »

Sinon, vous avez bien deux retours chariot en fin de script ?
Christian Massé (Volubis.fr)

kokoemi
Messages : 2
Enregistré le : mer. 30 août 2017, 13:03:41

Message par kokoemi »

Oui, on a bien deux chariots .

Par exemple, pour poster une erreur, on a ce code:
wData = cError404;
wHeader = cHeaderHTML;
wText = %subst(cError404:13);
exsr trt_error;


begsr trt_error;

wText = '<html><body>' + %trim(wText) + '</body></html>';
//Postage de l'erreur
wData = %trim(wData) + cCRLF
+ %trim(wHeader) + cCRLF + cCRLF
+ %trim(wText);

exsr trt_postrep;

endsr;

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Message par cmasse »

deux retour chariot en fin de script !!

et en augmentant le timeout comme indiqué sur le site de Lansa ?
Christian Massé (Volubis.fr)

Répondre