We have an interesting problem and it doesn’t occur all the time.
We make a Natural call via EntireX and at times we get a Broker 1014:1500. The work file name is unique for the session. It will work for a bit and then all of a sudden it will through this error.
What also happens after that is that when we call other programs after that we get a 1014:1586 or in some cases even a 1014:0082.
To solve the issue we then need to stop and start the server and it will continue for a day or two possibly three and then it will happen again and then the cycle continues.
The three modules in question comes from different applications; however all three sets the codepage encoding to setCharacterEncoding(“windows-1252”) and our Natural environment uses ISO-8859-01. All the modules in question doesn’t use the ON ERROR statement;
Another application that also uses the windows-1252 encoding, but has its own dedicated server doesn’t give issues. The server in question above is being used by multiple applications.
Some of the reading on the forums suggested that the “Environment” get “lost” somehow and one needs to “reset” it the original NatParm.
Obviously on asking the programmers what has changed - the answer is the normal - “…nothing has changed - this module has been running for years”
The 1014:1586 problem we to get from time to time for years now, but can’t seem to find a solution. Basically in these cases a natural run time error occurs and we then send the error to LPT31 which is a file output when the server runs in RPC or batch mode. These modules uses the ON ERROR and within this statement we send the error output to PR31=31.
Just some back ground:
- Our RPC servers is not started up in BATCH MODE; which I see in the latest documentation is strongly suggested.
- AUTORPC=ON; this is used as we do have Java routines that needs to be executed in some cases.
- We don’t have Natural Security
- I’ve tried implementing NATRPC01 and NATRPC02 on our DEV environment to see if I can catch the error to get more information, but this doesn’t seem to work.
- We run Natural on Solaris
- All calls are done the same way e.g:
Stl086n3 nat4 = new Stl086n3(new Broker(Utils.getEtbIp(request.getServerName()), “JavaUser”), “RPC/SRV1/CALLNAT”);
We did find in same cases we had to change the “JavaUser” to be more unique per call.
Werner van Tonder
Senior Analyst Programmer
Stellenbosch University, South Africa