Skip to content

iLibCall fails on 64-bt Python versions #17

Description

@kadler

Original report by Kevin Adler (Bitbucket: kadler, GitHub: kadler).


All calls to XMLSERVICE through iLibCall fail with *NODATA. Other transports are unaffected.

Example:

#!python
from itoolkit import *
from itoolkit.lib.ilibcall import *

itransport = iLibCall()
itool = iToolKit()

itool.add(iCmd5250('wrkactjob', 'WRKACTJOB'))
print(itool.xml_in())
itool.call(itransport)
wrkactjob = itool.dict_out('wrkactjob')
print(wrkactjob)

Output:

#!text
<?xml version='1.0'?>
<xmlservice><sh error="fast" var="wrkactjob"><![CDATA[/QOpenSys/usr/bin/system WRKACTJOB]]></sh></xmlservice>

{'error': {'error': '*NODATA', 'wrkactjob': {...`

Activity

  1. kadler commented on Nov 30, 2018

    @kadler
    MemberAuthor

    Original comment by Kevin Adler (Bitbucket: kadler, GitHub: kadler).


    This is an upstream XMLSERVICE bug: https://bitbucket.org/inext/xmlservice-rpg/issues/17/calling-xmlservice-from-a-64-bit-pase-job

    For now, the workaround is to use the database transport:

    #!python
    # Instead of this
    from itoolkit.lib.ilibcall import *
    itransport = iLibCall()
    
    # Do this
    from itoolkit.db2.idb2call import *
    itransport = iDB2Call()
    
  2. added
    bugSomething isn't working
    and removed on Dec 21, 2018
  3. kadler commented on Jan 23, 2019

    @kadler
    MemberAuthor

    New XMLSERVICE bug is IBM/xmlservice#17

  4. dmabupt commented on Jan 29, 2019

    @dmabupt

    Original comment by Kevin Adler (Bitbucket: kadler, GitHub: kadler).

    This is an upstream XMLSERVICE bug: https://bitbucket.org/inext/xmlservice-rpg/issues/17/calling-xmlservice-from-a-64-bit-pase-job

    For now, the workaround is to use the database transport:

    #!python
    # Instead of this
    from itoolkit.lib.ilibcall import *
    itransport = iLibCall()
    
    # Do this
    from itoolkit.db2.idb2call import *
    itransport = iDb2Call()
    

    @kadler
    It should be uppercased B ->itransport = iDB2Call() , not iDb2Call()

  5. jkyeung commented on Jan 29, 2019

    @jkyeung
    Contributor

    @kadler
    It should be uppercased B ->itransport = iDB2Call() , not iDb2Call()

    @dmabupt - Ah. Actually, it should be Db2, since that is consistent with IBM's current branding. However, it does look like the actual code in itoolkit.db2.idb2call still has a class named iDB2Call. It's probably reasonable to make an alias there, like

    iDb2Call = iDB2Call
    

    or vice versa.

  6. kadler commented on Jan 29, 2019

    @kadler
    MemberAuthor

    @jkyeung That would make sense to do, if all the i*Call transports weren't going to be deprecated in the next release anyway.

  7. ramstein74 commented on Apr 8, 2019

    @ramstein74
  8. kadler commented on Apr 8, 2019

    @kadler
    MemberAuthor

    @ramstein74 Seems like a different issue than this one - please open a separate issue.

  9. richardschoen commented on Apr 23, 2019

    @richardschoen

    Whew, good thing this was documented. I was banging my head trying to get iLibCall to work today :-)

  10. kadler commented on Apr 30, 2020

    @kadler
    MemberAuthor

    This is fixed in XMLSERVICE 2.0.1. The necessary PTFs are now documented in here an the code will now attempt to detect this condition and raise an exception with the PTF numbers in the exception message.

  11. added this to the 1.7 milestone on May 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions