COMTI: Need to Define a Decimal Data Type with More Than 18 Digits

This article was previously published under Q275908
This article has been archived. It is offered "as is" and will no longer be updated.
COM Transaction Integrator (COMTI) Component Builder lets the user describe parameters to methods. If you add a parameter of type Decimal, the Component Builder limits the "COBOL Data Type" value of the Decimal parameter to a maximum of 18 digits. However, if a host application is written in a programming language other than COBOL, a decimal parameter that is passed to Customer Information Control System (CICS) may require more than 18 digits.

If you right-click the parameter in Component Builder to bring up the Parameter Properties dialog box, and then click the COBOL Definition tab, you see two spin boxes that allow you to specify the number of digits to the left and right of the parameter's decimal point. The sum of the left and right values default to a maximum of 18. If you try to add numbers with a sum greater than 18, you receive a "DTCOB390" error message.
Component Builder limits all Decimal datatypes to a maximum of 18 digits to comply with COBOL specifications.
To resolve this problem, obtain the latest service pack for SNA Server 4.0. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
215838 How to Obtain the Latest SNA Server Version 4.0 Service Pack

Microsoft has confirmed that this is a problem in Microsoft SNA Server version 4.0.

This problem was first corrected in SNA Server 4.0 Service Pack 4.
When you are converting data to and from Windows Automation datatypes, COMTI Component Builder uses the idiom of COBOL to represent the equivalent mainframe datatypes. COBOL datatypes COMP, COMP-3, and DISPLAY are limited to 18 digits. This is in accordance with COBOL specifications. However the mainframe hardware is capable of storing up to 29 digits in a BCD number. Some mainframe languages exploit this capability to let applications use packed decimals up to 29 digits long.

When you are using COMTI with a host application that is written in COBOL, a decimal parameter should never be more than 18 digits long. However, if the host application is written in a language that supports longer packed decimal types, the hotfix allows the longer length to be defined. A decimal datatype cannot exceed 29 digits; this would exceed the size of packed decimal that s370 architecture can handle.
Convertprim Dtcob390 Ibmcobol

Article ID: 275908 - Last Review: 01/17/2015 14:50:03 - Revision: 3.1

  • Microsoft SNA Server 4.0
  • Microsoft SNA Server 4.0 Service Pack 1
  • Microsoft SNA Server 4.0 Service Pack 2
  • Microsoft SNA Server 4.0 Service Pack 3
  • Microsoft COM Transaction Integrator for CICS and IMS 1.0
  • Microsoft COM Transaction Integrator for CICS and IMS 4.0 SP2
  • Microsoft COM Transaction Integrator for CICS and IMS 4.0 SP3
  • kbnosurvey kbarchive kbbug kbfix kbsna400presp4fix kbqfe kbsna400sp4fix KB275908