Broker Error 0003 0010

Hi.
We are running a client based on EntireX Java ACI. When we send data 12650 bytes or less, all is good, but when the data is 12651 bytes or more, we receive 0003-0010. We are asked to implement this values:
EBX.APIVersion = 3
EBX.BrokerID = “#.#.#.#:18025:TCP

So far I haven’t been able to this. First of the BrokerID setting throws this error:
java.lang.IllegalArgumentException: Wrong argument “#.#.#.#:18025:TCP” to Broker constructor

Posting trace ==>
2018-05-31 11:29:04.135/main Trace started:
2018-05-31 11:29:04.135/main EntireX Java Runtime, Version: 8.2.2.0.186, Date: 04 Nov 2011
2018-05-31 11:29:04.135/main Java version=1.7.0_111
2018-05-31 11:29:04.135/main Java vendor=Oracle Corporation
2018-05-31 11:29:04.135/main Java class version=51.0
2018-05-31 11:29:04.135/main OS name=Windows 7
2018-05-31 11:29:04.135/main OS version=6.1
2018-05-31 11:29:04.135/main OS architecture=x86
2018-05-31 11:29:04.135/main Default encoding=Cp1252
2018-05-31 11:29:04.135/main Country=US Language=en
2018-05-31 11:29:04.135/main Language code=en
2018-05-31 11:29:04.135/main Country code=null
2018-05-31 11:29:04.135/main Timezone=America/New_York
2018-05-31 11:29:04.135/main File encoding=Cp1252
2018-05-31 11:29:04.135/main Running on an ASCII machine.
2018-05-31 11:29:04.135/main Using API version 3 for Broker #.#.#.#:18025
2018-05-31 11:29:04.135/main KERNELVERS(BID=#.#.#.#:18025,UID=BADMBXR,PU=0000000000000000000000000000)
2018-05-31 11:29:04.135/main Allocating new socket for #.#.#.#:18025 (1)
2018-05-31 11:29:04.150/main TcpNodelay enabled
2018-05-31 11:29:04.150/main Will receive data, timeout=20000 milliseconds
2018-05-31 11:29:04.166/main Application Monitoring Support: false
2018-05-31 11:29:04.166/main Using API version 9 for Broker #.#.#.#:18025
2018-05-31 11:29:04.166/main KERNELVERS returns: EC=00000000,TXT=Version 9.12.0.1 Platform z/OS 02.02.00,API=10,PU=18May13-051938-000000-265217
2018-05-31 11:29:04.166/main LOGON(BID=#.#.#.#:18025,UID=BADMBXR,API=9,FL=Y,ANODE=W7DOCGNL6TW1,ATYPE=Java,AVERS=8.2.2.0.186,ANAME=DACS,ETXL=256,PASS=äÊø~P.®a ‘+1áx&.®Ð¼ï©…œVB?.qË··,SECTOK=.#Egÿ…ÿ.,PU=18May13-051938-000000-265217)
2018-05-31 11:29:04.166/main Will receive data, timeout=20000 milliseconds
2018-05-31 11:29:04.182/main LOGON returns: EC=00000000,SEQID=12131659,VUID=BADMBXR,TXT=Successful response,SECTOK=#Eg[Áÿ
2018-05-31 11:29:04.213/main SEND(BID=#.#.#.#:18025,UID=BADMBXR,CID=NEW,SC=ETB,SN=SPSERVER,SV=DACSTRAIN,SL=12651,LS=CP1252,API=9,FL=Y,ANODE=W7DOCGNL6TW1,ATYPE=Java,AVERS=8.2.2.0.186,ANAME=DACS,ETXL=256,SECTOK=.#Eg…[…Á…ÿ.,PU=18May13-051938-000000-265217)
2018-05-31 11:29:04.213/main Will receive data, timeout=20000 milliseconds
2018-05-31 11:29:04.244/main SEND returns: EC=00000000,CID=0010000002819446,SEQID=12131661,TXT=Successful response
2018-05-31 11:29:04.244/main RECEIVE(BID=#.#.#.#:18025,UID=BADMBXR,OP=MSG,CID=0010000002819446,W=60S,RL=0,LS=CP1252,API=9,FL=Y,ANODE=W7DOCGNL6TW1,ATYPE=Java,AVERS=8.2.2.0.186,ANAME=DACS,ETXL=256,SECTOK=.#Eg…[…Á…ÿ.,PU=18May13-051938-000000-265217)
2018-05-31 11:29:04.244/main Will receive data, timeout=80000 milliseconds
2018-05-31 11:29:04.260/main RECEIVE returns: EC=00030010,CID=0010000002819446,SC=ETB,SN=SPSERVER,SV=DACSTRAIN,SEQID=12131662,TXT=EOC due to DEREGISTER of partner
2018-05-31 11:29:04.291/main Broker Error 0003 0010: EOC due to DEREGISTER of partner
<<===

Any clues?

The error indicates that the partner (ACI Server) you are calling received the message you sent then terminated (logged off from Broker) without replying. You need to look at the ACI Server to determine why it terminated - presumably, it encountered some sort of fatal error and used a catch bock to terminate the server (if the server is Natural, then a ON ERROR was used to trap the error).

If the server program is only configured to accept 12650 bytes as a message (size of receive area, passed in RECEIVE-LEN), then sending more will cause it to fail (the server will get a Broker error 00200094 indicating that the receive area is too small for the inbound message).

When using ACI messaging, your client and server have to conform to a predefined message pattern - content, length - in order for the message exchange to succeed. You can’t just send more data to the server than it has been programmed to accept - it needs to know what to do with the additional data for one thing, in addition to allocating sufficient area to receive it.

I don’t have access to the partner server program but they have indicated that they made changes to accept more bytes.
They changed the server program with
EBX.APIVersion = 3
EBX.ReceiveBufferLength = 2000000
EBX.BrokerID = “:18025:TCP”

They want us to modify the client by changing the version and broker ID as below.:
APIVersion = 3
BrokerID = “:18025:TCP”

but I can not find the method to modified this.

If I try
Broker broker = new Broker(":18025:TCP", “BADMBXR”);
I get error like java.lang.IllegalArgumentException: Wrong argument “:18025:TCP” to Broker constructor

How do I find what transport and API version my client is using to connect to server program?

Please try:

Broker broker = new Broker("tcp://<HOST>:18025", "BADMBXR"); 

For more information on the Broker class, please see the EntireX Java ACI Javadocs at https://techcommunity.softwareag.com/ecosystem/documentation/webmethods/wmsuites/wmsuite10-1/EntireX/10-1_EntireX/aci_java/javadoc/com/softwareag/entirex/aci/Broker.html

Hi,
Same error
Exception in thread “main” java.lang.IllegalArgumentException: Wrong argument “tcp://:18025” to Broker constructor

can you post your code to the forum as an attachment? (use “post reply” button rather than “Post Topic” button) The cause of the error isn’t apparent from the snippets.

I have attached a test file
TestBroker.java (2.15 KB)

I didn’t set up a server, but the client is able to run without error down to the convObj.send(bSend) statement when I get an expected “Error 0007 0007: ETB/SPSERVER/DACSTRAIN not registered”.

So…something with your environment is out of whack. Do you have an entirex.jar in the execution classpath? From what version of EntireX? You can check the version of the entirex.jar with this:


C:\SoftwareAGOne\EntireX\classes>java -cp entirex.jar com.softwareag.entirex.aci.EntireXVersion
EntireX Java Package, Version: 9.12.0.11.622, Date: 21 Jun 2017

On the length issue: how do you get to the send function if you can’t instantiate a Broker object? Assuming you get there in some manner, is the service set up in its Broker Attribute file for a message size of 2mb? Are the developers of the ACI server seeing any errors or issues on their server? According to EntireX, the server received your message but terminated the conversation without sending a reply, so it seems that the server has errored out or is not following the receive/send pattern you are expecting…

Douglas
Thanks for your time

Version of entirex.jar from out.println(broker.getVersion());
EntireX Java Runtime, Version: 8.2.2.0.186, Date: 04 Nov 2011

I believe that Error 00070007 is due to not been able to connect to the private ip address.

On the “Broker Attribute file” == I have to check with the developers.