IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.


#TechXchangePresenter
 View Only
Expand all | Collapse all

Array / Group definition IDL generated. NAT6972 error

  • 1.  Array / Group definition IDL generated. NAT6972 error

    Posted Fri July 09, 2004 01:51 PM

    We are having trouble when we try to use Natural sub-p’s with arrays. See the info cut and pasted below. We are getting a NAT6972. We have been advised by the Software AG person to use *Error-TA to return the “real” error.
    We do not know what piece to attack first. We use many Natural sub-p’s in our production environment via the Broker TOR object and a few using RPC. This is our first with arrays and have similar ones waiting to be delivered.
    I need guidance on using the *error-ta not sure where I need to reference it and guidance on how to properly format the arrays…so that we do not receive the NAT6972.

    EntireX 7.1.1 patch level 30
    Let me know if I need to provide any other information.

    Smiles,
    Karen

    IDL
    Library ‘XXXXX’ Is
    Program ‘PRGNAME’ Is
    Define Data Parameter
    1 #W-USER-ID (A8)
    1 #X-DAT (A30)
    1 TEST-COUNT (N3) Out
    1 TEST-DATA (/100)
    2 TST-TY (A4)
    2 TST-DT (A8)
    2 SUBTEST (A2)
    2 SEL-SUBTEST (A1)
    2 TST-SCR (N4.2)
    2 MAX-SCR (N4.2)
    2 CRS-PLCMNTS (A10/1:4)
    1 #RETURN-CODE (N4) Out
    1 #RETURN-MSG (A60) Out
    End-Define
    CS Wrapper
    #region Groups for LIBRARY ‘XXXXX’, PROGRAM ‘PRGNAME’

    public class Prgname
    {
    public class TestData
    {
    [SendAs(IdlType.A, Length=4f)]public StringBuilder tstTy;
    [SendAs(IdlType.A, Length=8f)]public StringBuilder tstDt;
    [SendAs(IdlType.A, Length=2f)]public StringBuilder subtest;
    [SendAs(IdlType.A, Length=1f)]public StringBuilder selSubtest;
    [SendAs(IdlType.N, preDecimal=4, postDecimal=2)]public decimal tstScr;
    [SendAs(IdlType.N, preDecimal=4, postDecimal=2)]public decimal maxScr;
    [SendAs(IdlType.A, Length=10f, Dim=4f)]public StringBuilder crsPlcmnts;
    }
    }


    #endregion
    #region Method/Function for LIBRARY ‘ORIONWEB’ PROGRAM ‘STAW14N1’

    [Program(“STAW14N1”)]
    public void testScores(
    [SendAs(IdlType.A, Length=8f)][In, Out] ref StringBuilder wUserId,
    [SendAs(IdlType.A, Length=30f)][In, Out] ref StringBuilder xDat,
    [SendAs(IdlType.N, preDecimal=3, postDecimal=0)][Out] out decimal testCount,
    [SendAs(IdlType.Group, Dim=100f)][In, Out] ref EntireX.Wrappers.Student.StudentBasics.Staw14n1.TestData testData,
    [SendAs(IdlType.N, preDecimal=4, postDecimal=0)][Out] out decimal returnCode,
    [SendAs(IdlType.A, Length=60f)][Out] out StringBuilder returnMsg
    )
    {
    testCount = 0;
    returnCode = 0;
    returnMsg = new StringBuilder() ;
    service.Send(
    this.GetType().GetMethod(“TestScores”),
    wUserId,
    xDat,
    new Ref(ref testCount),
    testData,
    new Ref(ref returnCode),
    returnMsg
    );
    }

    #endregion
    }
    }

    Karen Goolishian Luttrell
    Artemis Development Team
    FCCJ

    Karen Goolishian Luttrell
    Artemis Development Team
    FCCJ


    #webMethods
    #Mainframe-Integration
    #EntireX


  • 2.  RE: Array / Group definition IDL generated. NAT6972 error

    Posted Tue July 13, 2004 02:45 AM

    a NAT6972 is usually a setup problem rather than something within your program. Turn on the trace:
    RPC=(SERVER=ON,etc,TRACE=1)
    and add a DD statement for CMPRT10:
    //CMPRT10 DD SYSOUT=*
    This will give the subcode of the error, one of:
    1 - No directory.
    2 - Invalid directory.
    3 - No space to load directory. Increase the RPC size.
    4 - No server found in service directory for the subprogram/library
    whose names are indicated in the error message.
    5 - Recursive RPC with the two subprograms whose names are
    indicated in the error message.
    6 - A Natural error has occurred during loading of NATCLTGS.

    Given that you have some arrays in your PDA, I’m guessing you might need to increase your RPCSIZE value. The minimum for RPCSIZE is MAXBUFF + 4. Try MAXBUFF + 16. For example:
    RPC=(SERVER=ON,SRVNODE=ETB001,SRVNAME=SRV1,
    MAXBUFF=30,RPCSIZE=46)

    Douglas Kelly,
    Principal Consultant
    Software AG, Inc
    Sacramento, California


    #webMethods
    #Mainframe-Integration
    #EntireX