Ensuring a healthy toolkit

Re: Ensuring a healthy toolkit

Postby sabelsteel on Fri Apr 06, 2012 2:24 pm

Downloading 1.6.8 worked! Thanks Alan!

I'm sorry to keep bugging you, but I'm concerned about slow performance. This may be normal at this stage, but it takes almost 5 seconds for an ajax call to an RPG program that simply increments a counter in a data area and returns the new value. I don't know where the bottleneck is happening, but surely it shouldn't take that long.

Here is my PHP:
Code: Select all
<?php
   require('checkCredentials.php');
   require_once('ToolkitService.php');
 
   $ToolkitServiceObj = ToolkitService::getInstance($db, $namingMode);
   $ToolkitServiceObj->setToolkitServiceParams(array('InternalKey'=>"/tmp/$user"));
   $param[] = $ToolkitServiceObj->AddParameterPackDec('both', 9,0, 'SRN', 'SRN', $srn);
   $result = $ToolkitServiceObj->PgmCall("SCNXTSRN", "WWW", $param, null, null);

   if($result){
      $out = $result['io_param'];

      foreach($out as $key=>$value){
         $response->srn = $value;
      }
      echo json_encode($response);   
      
   } else {
      echo "Execution failed.";
   }
   
   /* Do not use the disconnect() function for "state full" connection */
   $ToolkitServiceObj->disconnect();

?>


And here is the RPG program that the PHP script calls:
Code: Select all
      //===============================================================*
      // Program - SCNXTSRN Get Next System Ref. No.
      //===============================================================*

     D nextSRN         S              9  0 DTAARA('QS36F/SCD004')

      //***********************************************************************
     C     *ENTRY        PLIST
     C                   PARM                    SRN               9 0
      //***********************************************************************
      /FREE

       //Generate SRN
       In *lock nextSRN;
         srn = nextSRN;
         nextSRN += 1;
       Out nextSRN;

       *InLR = *On;
       Return;
      /End-Free


...And it might be useful to see the debug.log:
Code: Select all
************Beginning of data**************                                                                   
Creating new conn with database: 'Resource id #1', user or i5 naming flag: '1', ext prefix: '', persistence: ''
Re-using an existing db connection with schema separator: /                                                   
Exec start: 2012-04-06 13:12:25                                                                               
IPC: '/tmp/ADAM'. Control key: *cdata *sbmjob(ZENDSVR/ZSVR_JOBD/XTOOLKIT)                                     
Stmt: call ZENDSVR/iPLUG512K(?,?,?,?)                                                                         
Input XML: <?xml version="1.0" encoding="ISO-8859-1" ?><script>                                               
                                                                                                               
<pgm name='SCNXTSRN' lib='WWW'>                                                                               
<parm comment='SRN' io='both'> <data type='9p0' var='SRN' ></data>  </parm>                                   
                                                                                                               
</pgm>                                                                                                       
</script>                                                                                                     
Output XML: <?xml version="1.0" encoding="ISO-8859-1" ?><script>                                               
                                                                                                               
<pgm name='SCNXTSRN' lib='WWW'>                                                                               
<parm comment='SRN' io='both'>                                                                                 
<data type='9p0' var='SRN' ><![CDATA[230619]]></data>                                                         
</parm>                                                                                                       
</pgm>                                                               
</script>                                                             
Exec end: 2012-04-06 13:12:27. Seconds to execute: 2.2392559051514.   
                                                                     
                                                                     
Exec start: 2012-04-06 13:12:27                                       
IPC: '/tmp/ADAM'. Control key: *immed                                 
Stmt: call ZENDSVR/iPLUG512K(?,?,?,?)                                 
Input XML: <?xml version="1.0" encoding="ISO-8859-1" ?>               
Output XML:                                                           
Exec end: 2012-04-06 13:12:29. Seconds to execute: 1.6946349143982.   
                                                                     
Db disconnect requested and done.                                     
************End of Data********************                     



I remember hearing Mike Pavlak say that it's most efficient to put the path to the toolkit first in the include_path. I did that, and it shaved about .2 seconds off. Is it supposed to take about 4.5 seconds to make a call to RPG like this?
sabelsteel
 
Posts: 14
Joined: Wed Nov 30, 2011 8:07 pm

Re: Ensuring a healthy toolkit

Postby aseiden on Fri Apr 06, 2012 10:27 pm

Remove this line:
Code: Select all
$ToolkitServiceObj->disconnect();

and you will see a big improvement.
aseiden
 
Posts: 795
Joined: Thu Apr 09, 2009 5:45 pm

Re: Ensuring a healthy toolkit

Postby sabelsteel on Mon Apr 09, 2012 6:56 pm

That was it. Thanks again for your help, Alan. This XML toolkit is a huge help to RPG programmers who, like me, are newbies to OO PHP. I'll be using it quite often.
sabelsteel
 
Posts: 14
Joined: Wed Nov 30, 2011 8:07 pm

Re: Ensuring a healthy toolkit

Postby chuk_shirley on Wed May 23, 2012 8:00 pm

So, I'm having trouble with this again. The toolkit was working fine for a while, but it has suddenly stopped. When executing this bit of PHP...

Code: Select all
   require_once('ToolkitService.php');
 
   $ToolkitServiceObj = ToolkitService::getInstance($db, $namingMode);
   $ToolkitServiceObj->setToolkitServiceParams(array('InternalKey'=>"/tmp/$user"));
   $result = $ToolkitServiceObj->PgmCall("SCNXTSRN", "WWW", null, null, null);

   if($result){
      //...do something...
   } else {
      //...error...
   }






I get this in the debug.log:

Code: Select all
************Beginning of data**************                                                                   
                                                                                                               
Creating new conn with database: 'Resource id #1', user or i5 naming flag: '1', ext prefix: '', persistence: ''
Re-using an existing db connection with schema separator: /                                                   
Exec start: 2012-05-23 13:29:43                                                                               
IPC: '/tmp/ADAM'. Control key: *cdata *sbmjob(ZENDSVR/ZSVR_JOBD/XTOOLKIT)                                     
Stmt: call ZENDSVR/iPLUG512K(?,?,?,?)                                                                         
Input XML: <?xml version="1.0" encoding="ISO-8859-1" ?><script>                                               
                                                                                                               
<pgm name='SCNXTSRN' lib='WWW'>                                                                               
                                                                                                               
                                                                                                               
</pgm>                                                                                                       
</script>                                                                                                     
Output XML: <?xml version="1.0" encoding="ISO-8859-1" ?>                                                       
<report>                                                                                                       
<version>XML Toolkit 1.6.8-x11</version>                                                                       
<error>                                                                                                       
<errnoile>3025</errnoile>                                                                                     
<errnoxml>1301009</errnoxml>               
<xmlerrmsg>IPC getshm fail</xmlerrmsg>     
<xmlhint><![CDATA[/tmp/ADAM ]]></xmlhint> 
</error>                                   
<error>                                   
<errnoile>3025</errnoile>                 
<errnoxml>1301023</errnoxml>               
<xmlerrmsg>IPC shmget fail</xmlerrmsg>     
<xmlhint><![CDATA[/tmp/ADAM ]]></xmlhint> 
</error>                                   
<error>                                   
<errnoile>3025</errnoile>                 
<errnoxml>1301024</errnoxml>               
<xmlerrmsg>IPC shmget loop fail</xmlerrmsg>
<xmlhint><![CDATA[/tmp/ADAM ]]></xmlhint> 
</error>                                   
<error>                                   
<errnoile>3021</errnoile>                 
<errnoxml>1301025</errnoxml>             
<xmlerrmsg>IPC shmat fail</xmlerrmsg>     
<xmlhint><![CDATA[/tmp/ADAM ]]></xmlhint>
</error>                                 
<error>                                   
<errnoile>3021</errnoile>                 
<errnoxml>1301026</errnoxml>             
<xmlerrmsg>IPC shmat loop fail</xmlerrmsg>
<xmlhint><![CDATA[/tmp/ADAM ]]></xmlhint>
</error>                                 
<error>                                   
<errnoile>3021</errnoile>                 
<errnoxml>1400001</errnoxml>             
<xmlerrmsg>client call failed</xmlerrmsg>
<xmlhint><![CDATA[failure]]></xmlhint>   
</error>                                 
<jobinfo>                                 
<jobipc>/tmp/ADAM</jobipc>               
<jobipcskey>0100EC0E</jobipcskey>                                                                                                   
<jobname>QSQSRVR</jobname>                                                                                                         
<jobuser>QUSER</jobuser>                                                                                                           
<jobnbr>762951</jobnbr>                                                                                                             
<jobsts>*ACTIVE</jobsts>                                                                                                           
<curuser>ADAM</curuser>                                                                                                             
<ccsid>37</ccsid>                                                                                                                   
<dftccsid>37</dftccsid>                                                                                                             
<paseccsid>819</paseccsid>                                                                                                         
<langid>ENU</langid>                                                                                                               
<cntryid>US</cntryid>                                                                                                               
<sbsname>QSYSWRK</sbsname>                                                                                                         
<sbslib>QSYS</sbslib>                                                                                                               
<curlib></curlib>                                                                                                                   
<syslibl>QSYS QSYS2 QHLPSYS QUSRSYS</syslibl>                                                                                       
<usrlibl>QTEMP QGPL QS36F SABEL ARFILES PRFILES ARLIB PARASMLIB GLSABEL SAP SSC SPU SMM SSA SPS APSABEL SCRAPS SPOOLMAIL GATE WWW MML</usrlibl>
</jobinfo>                                                                                                                         
<joblog job='QSQSRVR' user='QUSER' nbr='762951'>failure</joblog>                                                                   
</report>                                                           
                                                                   
Exec end: 2012-05-23 13:30:04. Seconds to execute: 20.765962839127.



-I've made sure that the CSSID is still set as you suggested, Alan.
-/tmp/ADAM does exist, and I have *RW permissions on it.
-As you can see in the debug.log, I am running Toolkit 1.6.8-x11.
chuk_shirley
 
Posts: 13
Joined: Tue May 22, 2012 5:08 pm

Re: Ensuring a healthy toolkit

Postby aseiden on Wed May 23, 2012 10:47 pm

Chuk, thanks for the detailed information and debug log.

There's an XMLSERVICE update that will provide more detailed joblog information. The version you're using tends to "die" when it encounters an error. The update is more resilient.

Try it:
http://174.79.32.155/wiki/index.php/XML ... ICETesting
Look for version 1.6.8.42.

Let us know how it goes. Please send the new debug log generated by this version.

Alan
aseiden
 
Posts: 795
Joined: Thu Apr 09, 2009 5:45 pm

Re: Ensuring a healthy toolkit

Postby chuk_shirley on Thu May 24, 2012 1:23 pm

Downloading 1.6.8.42 solved the problem. Thanks Alan!
chuk_shirley
 
Posts: 13
Joined: Tue May 22, 2012 5:08 pm

Re: Ensuring a healthy toolkit

Postby ahaithcox on Tue Jun 05, 2012 10:12 pm

How can I tell what version of XMLSERVICE I have? Display object description only gives me the creation date. I really don't want to go through the update process if it's not needed. Currently installed server is Zend Server for IBMi version 5.6.0.
ahaithcox
 
Posts: 43
Joined: Mon Oct 03, 2011 5:22 pm

Re: Ensuring a healthy toolkit

Postby aseiden on Wed Jun 06, 2012 4:36 am

If you installed/compiled from source code then you can use this tip:
viewtopic.php?f=113&t=57608

Alan
aseiden
 
Posts: 795
Joined: Thu Apr 09, 2009 5:45 pm

Re: Ensuring a healthy toolkit

Postby artiztik on Wed Nov 21, 2012 11:51 pm

The YiP site is extremely slow. Having difficulty get the Wiki pages to load. Once I do, I can't get anything to download. Is this a known issue with the site?
artiztik
 
Posts: 2
Joined: Tue Nov 20, 2012 9:44 pm

Re: Ensuring a healthy toolkit

Postby erich_hieden on Thu Nov 22, 2012 8:36 am

Posted by Tony in another thread a few hours ago:
rangercairns wrote:Outstanding best of geek funny (my view), we put up a demo of new big data record XMLSERVICE ... and of course as is true public demos everywhere ... Yips machine ISP provider has been having issues, so sorry if you can not reach Yips machine today. I looked and machine isn't doing anything at all, but ISP connection can be slow (including telnet green screen).
Code: Select all
                             Work with Active Jobs                     KALYPSO
                                                             11/21/12  07:03:51
CPU %:     2.0     Elapsed time:   00:00:00     Active jobs:   299
erich_hieden
 
Posts: 372
Joined: Tue Jul 07, 2009 9:01 am

Previous

Return to New Toolkit

Who is online

Users browsing this forum: No registered users and 1 guest