# Mainframe Natural to Web Service - NAT6971 RC=1

**URL:** <https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875>\
**Category:** Forum\
**Tags:** Mainframe-Integration, EntireX\
**Created:** [August 5, 2009, 6:12am UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875 "2009-08-05T06:12:12Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Don\_Doty](https://avatars.discourse-cdn.com/v4/letter/d/0ea827/32.png) [@Don\_Doty](https://techcommunity.softwareag.com/u/Don_Doty)\
**Post date:** [August 5, 2009, 6:12am UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/1 "2009-08-05T06:12:12Z")

</div>

Add Broker Attributes class definition now for TECXML1, broker id is ETBTEC. Now I start a Java RPC server, and it shows up in Control Center so all is fine there.

The, I start my Natural session with:  
RPC=(RPCSIZE=32,MAXBUFF=28,AUTORPC=ON,COMPR=2,  
DFS=(TECXML1,ETBTEC,L))’

Here’s my program:  
DEFINE DATA LOCAL USING RPCINFOL  
LOCAL  
1 BORR-SSN-I (A9)  
1 NAME (A30)  
END-DEFINE

* * *

CALLNAT ‘TECXML1’  
BORR-SSN-I  
NAME  
\*  
WRITE  
‘=’ BORR-SSN-I  
‘=’ NAME  
\*  
ON ERROR  
CALLNAT ‘RPCINFO’ SERVER-PARMS CLIENT-PARMS  
DISPLAY C-NODE C-NAME C-ERROR-TEXT (AL=55)  
END-ERROR  
.

I Get NAT6971 Connection error on Client, reason 1 .

C-NODE C-NAME C-ERROR-TEXT

* * *

ETBTEC TECXML1 ETB is not available

RPCERR shows me  
RPCERROR More: \>  
NATURAL error number: NAT6971  
NATURAL error text :  
Connection error on Client, reason 1 ,TECXML1 /ETBT

RPC error information:  
ETB is not available

Server Node: ETBTEC Library: SADFAP  
Server Name: TECXML1 Program: ESIGN  
Line No: 0070

What is missing, any help/clues…thanks?

-Don

---

<div class="post-metadata">

**Author:** ![anon66457657](https://avatars.discourse-cdn.com/v4/letter/a/d6d6ee/32.png) [@anon66457657](https://techcommunity.softwareag.com/u/anon66457657)\
**Post date:** [August 5, 2009, 11:48am UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/2 "2009-08-05T11:48:59Z")

</div>

Dear Don,

the Broker stub is missing on the Natural RPC client side.  
Please

- link NATETB23 to your Natural nucleus  
or
- start your Natural with RCA=BROKER and add the EXX loadlib to your STEPLIB chain

Wolfgang

---

<div class="post-metadata">

**Author:** ![Don\_Doty](https://avatars.discourse-cdn.com/v4/letter/d/0ea827/32.png) [@Don\_Doty](https://techcommunity.softwareag.com/u/Don_Doty)\
**Post date:** [August 5, 2009, 11:59pm UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/3 "2009-08-05T23:59:03Z")

</div>

Great, that worked.

Now I’m getting an RC=9, and the message says:

00080003 Access Denied password not authorized  
NAT6971 Connection error on Client, reason 9 ,TECXML1

So I take it this is my ACF2 password. I do see the violation in my broker so I now think I’m getting that far.

Do I need to run a user exit? I’ve tried USR1071, USR2071, USR2072, not sure???

---

<div class="post-metadata">

**Author:** ![anon66457657](https://avatars.discourse-cdn.com/v4/letter/a/d6d6ee/32.png) [@anon66457657](https://techcommunity.softwareag.com/u/anon66457657)\
**Post date:** [August 6, 2009, 11:42am UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/4 "2009-08-06T11:42:11Z")

</div>

Before the first Broker call you have to logon to the EntireX Broker using USR2071 with a valid user ID and password for the security environment used by the EntireX Broker. If the EntireX Broker runs on z/OS you have to use a valid ACF2 user ID and password.

---

<div class="post-metadata">

**Author:** ![Don\_Doty](https://avatars.discourse-cdn.com/v4/letter/d/0ea827/32.png) [@Don\_Doty](https://techcommunity.softwareag.com/u/Don_Doty)\
**Post date:** [August 7, 2009, 10:34am UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/5 "2009-08-07T10:34:49Z")

</div>

Now using USR2071, still getting invalid password…broker security shows the id and ACF2 response code saying invalid password being issued, so I guess I’m getting to EntireX security. My password also works to login to broker control center, also using it for Natural IDL generation, etc…so I know it’s authenticating correctly to broker and entirex security.

Is there something else that is prohibiting this from being passed correctly? Is there something else in the install that could be stopping this from passed correctly…not sure where to look? I’ve got GWMSGL=3 in broker startup but I don’t know where the trace is going? Just curious too, our new password standard rules enforce that we use a number and national sign in the password, so I’m using a number and the ‘@’ sign, but like I said it works into control center so is this an issue?

---

<div class="post-metadata">

**Author:** ![anon66457657](https://avatars.discourse-cdn.com/v4/letter/a/d6d6ee/32.png) [@anon66457657](https://techcommunity.softwareag.com/u/anon66457657)\
**Post date:** [August 7, 2009, 12:30pm UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/6 "2009-08-07T12:30:03Z")

</div>

Did you get the “invalid password” already for the USR2071 call?  
Is your password in mixed case?

Some hnts:

1. add ACIVERS=8 to your RPC parameter string
2. use exactly the same Broker ID ETBTEC in USR2071 as in your DFS parameter
3. if you invoke USR2071P for logon:  
user ID is uppercase translated in any case  
password is uppercase translated if Mixed case = N  
if you call USR2071N via application, user ID and password are taken ASIS

---

<div class="post-metadata">

**Author:** ![Don\_Doty](https://avatars.discourse-cdn.com/v4/letter/d/0ea827/32.png) [@Don\_Doty](https://techcommunity.softwareag.com/u/Don_Doty)\
**Post date:** [August 8, 2009, 12:00am UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/7 "2009-08-08T00:00:20Z")

</div>

I have broker attributes file as such:  
NODE = 220  
BROKER-ID = ETBTEC

So, I was thinking that my Natural parms would then be:  
RPC=(RPCSIZE=32,MAXBUFF=28,AUTORPC=ON,COMPR=2,DFS=(TECXML1,ETBTEC,L))

and that I would setup USR2071:  
1 PARM-INPUT  
2 I-FUNCTION (A08) INIT \<‘LOGON’\>  
2 I-BROKER-ID (A32) INIT \<‘ETBTEC’\>  
2 I-USER-ID (A08) INIT \<‘RPC0011’\>  
2 I-PASSW (A08) INIT \<‘PASSWORD OMITTED FOR THIS LOG’\>  
2 I-NEWPASSW (A08)  
1 PARM-OUTPUT  
2 O-RC (N04)  
2 O-ERRTEXT (A80)

Results:  
“00200216 API: Invalid BROKER-ID”  
…hmmm, kinda seems funny to have to do that bt ???

So I changed my RPC parms to 220 and the calling program uses 220 as this:  
1 PARM-INPUT  
2 I-FUNCTION (A08) INIT \<‘LOGON’\>  
2 I-BROKER-ID (A32) INIT \<‘220’\>  
2 I-USER-ID (A08) INIT \<‘RPC0011’\>  
2 I-PASSW (A08) INIT \<‘PASSWORD OMITTED FOR THIS LOG’\>  
2 I-NEWPASSW (A08)

That has got me this far, but don’t know if that has been causing me these issues too???

################################################################################  
Now, per your suggestions I have my parms as:  
RCA=(BROKER),  
RPC=(RPCSIZE=32,MAXBUFF=28,AUTORPC=ON,COMPR=2,ACIVERS=8,  
DFS=(TECXML1,220,L))’

Results:  
C-NODE: 220  
C-NAME: TECXML1  
C-ERROR-TEXT: 00200208 \* No message text associated with this error code \*   
ESIGN 0260 NAT6971 Connection error on Client, reason 9 ,TECXML1

So I think ACI problem so I make it:  
ACIVERS=4

Results:  
C-NODE: 220  
C-NAME: TECXML1  
C-ERROR-TEXT:  
00200379 API: Inconsistent Security Installation   
ESIGN 0260 NAT6971 Connection error on Client, reason 9 ,TECXML1

Then:  
ACIVERS=2

Results:  
C-NODE: 220  
C-NAME: TECXML1  
C-ERROR-TEXT:  
00080003 Access Denied password not authorized   
ESIGN 0260 NAT6971 Connection error on Client, reason 9 ,TECXML1

################################################################################  
Here’s the remaining code for your review.

…  
END-DEFINE  
\*  
EXAMINE I-PASSW TRANSLATE INTO UPPER  
EXAMINE I-NEWPASSW TRANSLATE INTO UPPER  
\*  
CALLNAT ‘USR2071N’ USING PARM-INPUT PARM-OUTPUT  
/\*  
/\*  
CALLNAT ‘TECXML1’  
BORR-SSN-I  
NAME  
\*  
WRITE  
‘=’ BORR-SSN-I  
‘=’ NAME  
\*  
ON ERROR  
CALLNAT ‘RPCINFO’ SERVER-PARMS CLIENT-PARMS  
WRITE  
/ ‘=’ C-NODE  
/ ‘=’ C-NAME  
/ ‘=’ C-ERROR-TEXT (AL=78)  
END-ERROR  
END

---

<div class="post-metadata">

**Author:** ![anon66457657](https://avatars.discourse-cdn.com/v4/letter/a/d6d6ee/32.png) [@anon66457657](https://techcommunity.softwareag.com/u/anon66457657)\
**Post date:** [August 10, 2009, 12:24pm UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/8 "2009-08-10T12:24:08Z")

</div>

Sorry that I have overlooked the problem with your Broker ID: the broker ID ETBTEC is not valid when using NET communication (the default for NATET23).  
I assume that you have setup your Broker for NET (=Adabas SVC)communication.

Please try again as follows:

RPC=(RPCSIZE=32,MAXBUFF=28,AUTORPC=ON,COMPR=2,ACIVERS=8,  
DFS=(TECXML1,ETB220,L))

Call USR2071P with I-BROKER-ID = ETB220

The Broker ID in DFS must be identical to I-BROKER-ID

Please note that the prefix ETB in ETB220 has no meaning for NET communication. The EntireX Broker stub just looks for the trailing digits to build the DBID.

---

<div class="post-metadata">

**Author:** ![Don\_Doty](https://avatars.discourse-cdn.com/v4/letter/d/0ea827/32.png) [@Don\_Doty](https://techcommunity.softwareag.com/u/Don_Doty)\
**Post date:** [August 11, 2009, 3:40am UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/9 "2009-08-11T03:40:52Z")

</div>

That works, I get 00000000 Successful Response from RPC Server…but I’m not out of the woods yet???

Now I get a NAT0082, ugh? No line number or object, but it’s the TECXML1 object right? Why can’t it find this object?

---

<div class="post-metadata">

**Author:** ![Don\_Doty](https://avatars.discourse-cdn.com/v4/letter/d/0ea827/32.png) [@Don\_Doty](https://techcommunity.softwareag.com/u/Don_Doty)\
**Post date:** [August 11, 2009, 3:44am UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/10 "2009-08-11T03:44:42Z")

</div>

Oh yea, I to go with ACIVERS=2 or got inconsistency errors?

RPC=(RPCSIZE=32,MAXBUFF=28,AUTORPC=ON,COMPR=2,ACIVERS=2,  
DFS=(TECXML1,ETB220,L))’

---

<div class="post-metadata">

**Author:** ![anon66457657](https://avatars.discourse-cdn.com/v4/letter/a/d6d6ee/32.png) [@anon66457657](https://techcommunity.softwareag.com/u/anon66457657)\
**Post date:** [August 11, 2009, 12:33pm UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/11 "2009-08-11T12:33:52Z")

</div>

ACIVERS=8 is OK.

The NAT0082 is reported from the EntireX Java RPC server because he does not find TECXML1. Possible reasons:

- TECXML1 is not the correct program name (must be the first or only name in the IDL)
- the libray name is wrong (the first or only name in the IDL)  
The most possible reason is the wrong library name. For historical reasons the Natural RPC client sends its own client library name to the RPC server. If you want to use a different name you must call USR4008N to set the library name before calling the RPC server.  
The library name send to the RPC server is currently restricted to 8 characters.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/techcommunity/original/3X/c/d/cd19967bb605d28a72d77eb83a1cae22f3df2eb8.svg) [@system](https://techcommunity.softwareag.com/u/system)\
**Post date:** [April 2, 2021, 2:57pm UTC](https://techcommunity.softwareag.com/t/mainframe-natural-to-web-service-nat6971-rc-1/90875/12 "2021-04-02T14:57:20Z")

</div>


