MCH6801 calling RPG>Java from PHP

General discussion on Zend Server for IBM System i
Post Reply
mark5095
Posts: 2
Joined: Fri Jan 22, 2016 3:05 am

MCH6801 calling RPG>Java from PHP

Post by mark5095 » Fri Jan 22, 2016 3:44 am

After upgrading from V6R1 to V7R1, I'm receiving a MCH6801 error, Object domain or storage protection error for offset X'000000002A58CD84' in object XTOOLKIT QTMHHTTP 167139 when calling an RPG program that subsequently calls a Java program (RPGMail.) This was all working before the upgrade.

Zend Server 6.3
Version of toolkit front end: 1.5.0
I'm not sure how to find the XMLSERVICE version.

The relevant PHP program call is:

Code: Select all

$result = $tkConnection->PgmCall('XPRVEHISSR', 'INFOOBJLCU', $params, NULL, NULL);
		if ($result)
		{
			extract($result['io_param']);

			// Output complete message
			$this->writeSegment('IssueComplete');
			$ACCN30 = '';
			$POLICY = '';
			$CNM130 = '';	
			session_destroy(); 
		} else {
			echo 'Error executing XPRVEHISSR.';
		}
The ZendServer debug log is:

Code: Select all

JVAB578    Information             10   01/20/16  21:54:04.773310  QXJ9UTLJVM   QJVM6032    *STMT    RPGMAILSV   AIHSYS      *STMT
                                     From module . . . . . . . . :   QXJ9UTLJVM
                                     From procedure  . . . . . . :   JvaSendMsg
                                     Statement . . . . . . . . . :   16
                                     To module . . . . . . . . . :   RPGMAILFN
                                     To procedure  . . . . . . . :   RPGMAIL_NEW
                                     Statement . . . . . . . . . :   217
                                     Message . . . . :   JVM properties were loaded from a properties file.
                                     Cause . . . . . :   The Java Virtual Machine used the file
                                       "/QIBM/UserData/Java400/SystemDefault.properties" for loading one or more
                                       properties. Recovery  . . . :   If you are encountering property errors
                                       within your Java Virtual Machine, you should check this file for accuracy or
                                       delete it.
MCH6801    Escape                  40   01/20/16  21:54:04.982593  <                        000000   QP2USER2    QSYS        *STMT
                                     From Program  . . . . . . . :   tia_fault
                                     To module . . . . . . . . . :   QP2API
                                     To procedure  . . . . . . . :   runpase_common__FiPvT2
                                     Statement . . . . . . . . . :   5
                                     Message . . . . :   Object domain or storage protection error for offset
                                       X'000000002A58CD84' in object XTOOLKIT  QTMHHTTP  167139.
                                     Cause . . . . . :   A program tried to use a blocked instruction, access a
 5770SS1 V7R1M0 100423                        Display Job Log                        S102CW3M 01/20/16 21:54:16          Page    3
  Job name . . . . . . . . . . :   XTOOLKIT        User  . . . . . . :   QTMHHTTP     Number . . . . . . . . . . . :   167139
  Job description  . . . . . . :   ZSVR_JOBD       Library . . . . . :   ZENDSVR6
MSGID      TYPE                    SEV  DATE      TIME             FROM PGM     LIBRARY     INST     TO PGM      LIBRARY     INST
                                       system domain object, or make invalid use of a protected page. The violation
                                       type is 5. The violation type indicates the type of error: 1-Object domain
                                       violation. 2-Test Pointer Target Addressability (TESTPTA) violation. 3-Read
                                       protection error. 4-Write protection error. 5-Execute protection error. The
                                       space class is X'08'. The space class designates the type of space for a
                                       storage protection error or TESTPTA violation for a space pointer:
                                       00-primary associated space (includes space objects). 01-secondary
                                       associated space. 02-implicit process space for automatic storage.
                                       03-implicit process space for static storage. 04-implicit process space for
                                       activation group-based heap storage. 05-constant space. 06-space for
                                       handle-based heap storage. 07-teraspace offset X'000000002A58CD84'.
                                       08-teraspace for i5/OS PASE memory address X'000000002A58CD84'.
                                       X'8000000000000000000080008A58CD84' is a pointer to the storage for a
                                       protection error or TESTPTA violation for a space pointer. Some violations
                                       may be suppressed at low system security levels.
JVAB56D    Diagnostic              00   01/20/16  21:54:05.010024  QXJ9UTLJVM   QJVM6032    *STMT    QXJ9VM      QJVM6032    *STMT
                                     From module . . . . . . . . :   QXJ9UTLJVM
                                     From procedure  . . . . . . :   JvaSendMsg
                                     Statement . . . . . . . . . :   16
                                     To module . . . . . . . . . :   QXJ9VM
                                     To procedure  . . . . . . . :   xj9SendDiagMsgToJobLog
                                     Statement . . . . . . . . . :   22
                                     Message . . . . :   JVMDUMP039I Processing dump event "gpf", detail "" at
                                       2016/01/21 02:54:05 - please wait.
This PHP page successfully calls other RPG programs that do not call Java programs. The program being called, XPRVEHISSR, runs fine when called from the command line. It only fails when called via the Toolkit.

I found the links below which describe very similar problems but I'm not sure how or if the solutions can be applied to the Toolkit.
http://www-01.ibm dot com/support/docview.wss?uid=swg21653295
http://www-01.ibm dot com/support/docview.wss?uid=nas8N1012715
(sorry about the odd links above but I'm not authorized to post URLs!?)

Any help is greatly appreciated.
Mark

mark5095
Posts: 2
Joined: Fri Jan 22, 2016 3:05 am

Re: MCH6801 calling RPG>Java from PHP

Post by mark5095 » Fri Jan 29, 2016 4:36 am

With the help of IBM Support, this problem is the same as this one: http://www-01.ibm dot com/support/docview.wss?uid=swg21653295
(Again, sorry for the funky URL, the forum says I'm not authorized to post URL links!? - Because ?)

To work around the problem, end all Zend Server (instead of Domino as described in the link), run the command described in the fix and you are done.

Also, per IBM Support:
I would also suggest you follow up with Zend support. This issue appears to stem from their use of the /usr/lib/start32 command within their XTOOLKIT job. I know that Zend heavily relies on PASE and there is a good chance that Zend is calling the /usr/lib/start32 method.

Here are a couple of notes you will need to review before you make this change.
1. At some point in the future when start32 is PTF'ed their application will start to fail again. The steps in the document are simply a workaround. The primary issue needs to be addressed by Zend.

2. This action also disables the check for read/write execution and may present an additional security risk.

3. Because Zend starts these jobs in 32 bit mode, these jobs will not be allowed to run the 64bit java or other 64bit PASE applications.

Post Reply