Iseries os400 v7r1 -

General discussion on Zend Server for IBM System i
Post Reply
gverrecchia
Posts: 2
Joined: Fri Dec 14, 2012 5:26 pm

Iseries os400 v7r1 -

Post by gverrecchia » Fri Dec 14, 2012 5:36 pm

Hi we are new to testing Zend Ce on iseries , we downlaoded & installed latest release, which was easy enough. however when we run the sample test program example
CLCOMMAND.PHP , we receive an error "can't read xml report". ALso when we look at source code of clcommand.php where there are "(" we find odd characters (apears to be a ccsid problem) we did insert the fastcgi.conf - Language LANG=C CCSID=819
and in HTTPD.conf

DefaultFsCCSID 280
CGIJobCCSID 280

thanks in advance for any help

rangercairns
Posts: 222
Joined: Fri Jul 24, 2009 6:28 pm

Re: Iseries os400 v7r1 -

Post by rangercairns » Tue Dec 18, 2012 6:00 pm

Hi,
280 -- Italy (i think) -- all "normal ccsid" setting working 280 the DB2 clobs used by PHP toolkit would just naturally convert between client (ascii) and server (ebcdic) ... like breathing air it just works .. so try step 0) below first.

0) First ... maybe you should try PHP toolkit 1.4.0 and xmlservice 1.7.5 before 1208 setting or anything else below, because there was a big problem with double convert in PHP toolkit where internal use SimpleXML ws being overly helpful and messed up -- this may fix all (leave 819, C, httpd.conf 280).
download: http://www.youngiprofessionals.com/wiki ... XMLSERVICE

Second (if fails) ...
1) fastcgi.conf: You may want LANG=C and CCSID=1208, where 1208 is UTF-8, but i am not Italian , so i do not work in 280 CCSID (other people do).

2) Actual XML going between IBM i results in a PASE sh call (below) ...

Code: Select all

<?xml version="1.0" encoding="ISO-8859-1"?>
<script>
<cmd>addlible ZENDSVR</cmd>
<sh rows='on'>/QOpenSys/usr/bin/system -i 'DSPLIBL'</sh>
</script>
2.5) You can try PASE sh call on a 5250 green screen see if it works default on your system

Code: Select all

call qp2term
> /QOpenSys/usr/bin/system -i 'DSPLIBL'
Next still fails ...
3) We have all manner of CCSID overrides in toolkit/xmlservice 1.4.0/1.75 ...

Maybe my bug ....
4) ... but i think there is a bug in XMLSERVICE for this path

===============
email from a XMLSERVICE DBCS tester today (12/18/2012)
=================
These days, I have tested XMLService.
It is great!
But I found PASE <sh> call does not return a result if it has DBCS data.
I found the CCSID 819 value is hard coded in XMLSERVICE/QRPGLESRC(PLUGPASE) like this.

Code: Select all

Qp2RunPase(iarg1: *NULL: *NULL: 0: 819: %ADDR(iarg1): %ADDR(ienv1));

Off course, it is not for DBCS environments. I have changed it to 1208 and confirmed to get DBCS characters correctly

Code: Select all

CALL XMLSERVICE.iPLUGR32K('/tmp/onoda','*SBMJOB','<?xml version=''1.0''?>       
<sh rows=''on''>/QOpenSys/usr/bin/system ''WRKACTJOB''</sh> 
') 
The "Run Display Library (DSPLIBL) command (/Samples/Toolkit/CLCommand.php) " sample also return DBCS characters fine with this patch and encoding = "UTF-8" setting in toolkit.ini.
I hope we can set a PASE CCSID value in a future release not to need patch the program.
Regards,

rangercairns
Posts: 222
Joined: Fri Jul 24, 2009 6:28 pm

Re: Iseries os400 v7r1 -

Post by rangercairns » Wed Dec 19, 2012 12:08 am

Update ...
1) I am optimistic upgrade to 1.4.0/1.7.5 GA code will fix your CCSID 280 issues without resorting to 1208 config (CLOBs should work)
2) However, if you think xmlservice 1208 bug was your issue ... here is a new test version (but i suspect not needed by 280)
http://www.youngiprofessionals.com/wiki ... ICETesting
2012–12–18 -xmlservice-rpg-1.7.6-sg3.zip

Code: Select all

try { $ToolkitServiceObj = ToolkitService::getInstance($database, $user, $password); } catch (Exception $e) { die($e->getMessage()); }
$ToolkitServiceObj->setToolkitServiceParams(
array('InternalKey'=>$ipc,         // route to same XMLSERVICE job /tmp/myjob1
'subsystem'=>"QGPL/QDFTJOBD",      // subsystem/jobd to start XMLSERVICE (if not running) 
'plug'=>"iPLUG5M",                 // max size data i/o (iPLUG4K,32K,65K, 512K,1M,5M,10M,15M)
'customControl' => '*pase(1208)'));// 1208 CCSID

erich_hieden
Posts: 393
Joined: Tue Jul 07, 2009 9:01 am

Re: Iseries os400 v7r1 -

Post by erich_hieden » Thu Dec 20, 2012 12:03 pm

Don't forget to set your QCCSID system value to anything other than 65535 (i.e. 280 in your case).

elle3919
Posts: 1
Joined: Tue Oct 15, 2013 12:17 pm

Re: Iseries os400 v7r1 -

Post by elle3919 » Tue Oct 15, 2013 12:51 pm

I don’t think the PHP toolkit will encode or convert this one. it might work for a number of other modules but this one I really doubt it. I will check it out with my team mates and confirm with you on this.

Post Reply