Highlighted
Absent Member.
Absent Member.
1520 views

[archive] Acuconnect Distributed processing

[Migrated content. Thread originally posted on 18 February 2008]

Hi,

Me again, I have successfully created a rountine to handle XML strings back and forth using the "MSXML2.DOMdocument60" and all appeared to be working fine until I tried to use it on the server as a result from a client call using Acuconnect distributed processing. If I run this on the server directly it works fine. I am not using AcuThin.

When I try to append a child node or a sibling I get an unspecified MAV on the client (no details on either server). I have put set configuration items at every point in the code below and gets to the "MODIFY XMLNODE APPENDCHILD(XMLCHILDNODE) GIVING XMLNODE" and stops, as in no futher execution not even and object exception (ie declaratives) gets it.

Does anyone know what is causing this? I have tried it with version 7.0, 7.2 and 8.0 with the same results. both the servers are windows 2003, one is setup as a web server running iis6 and the acuGT automation server as well as the runtime, I have an asp web page that uses the acugt automation server which returns no result or error and I have an aucocobol program which calls the server (via acuconnect) which does fail but with no detail apart from the the failing line number in the code which is the "MODIFY" statement above.

Is their some restriction on acuconnect? Is their some other setting I need to set for acuconnect on the server? I have even trolled through all the permissions and have not found anything.

Or is this being caused by some failure in the MSXML2/6.DLL on the server and if so where do I look?

Here is the code for adding a child

 
* Parse String
           CALL "C$PARAMSIZE" USING 2 GIVING PARAM-SIZE
           MOVE var-2(1:PARAM-SIZE) TO XMLSTRING
           CREATE DOMDocument60 of msxml2 HANDLE IN XMLDOM
           MODIFY XMLDOM @ASYNC = 1
           MODIFY XMLDOM LOADXML = XMLSTRING GIVING WS-ERROR
           IF  WS-ERROR NOT = 1
               EXIT PROGRAM RETURNING WS-ERROR
           END-IF
           EXIT PROGRAM RETURNING XMLDOM

........
* Add child
           CALL "C$PARAMSIZE" USING 3 GIVING PARAM-SIZE
           MOVE var-3(1:PARAM-SIZE) TO XMLFIELDNAME
           CALL "C$PARAMSIZE" USING 2 GIVING PARAM-SIZE
           MOVE var-2-HANDLE TO XMLNODE
           INQUIRE XMLNODE parentNode IN XMLPARENTNODE
           IF  XMLPARENTNODE = 0
               MOVE var-2-HANDLE TO XMLDOM
               INQUIRE XMLDOM DOCUMENTELEMENT IN XMLNODE
               MODIFY XMLDOM CREATENODE(1, XMLFIELDNAME, "") GIVING XMLCHILDNODE
               MODIFY XMLNODE APPENDCHILD(XMLCHILDNODE) GIVING XMLNODE
           ELSE
               INQUIRE XMLNODE OWNERDOCUMENT IN XMLDOM
               MODIFY XMLDOM CREATENODE(1, XMLFIELDNAME, "") GIVING XMLCHILDNODE
               MODIFY XMLNODE APPENDCHILD(XMLCHILDNODE) GIVING XMLNODE
           END-IF
           IF  XMLNODE NOT = 0
               IF  NUM-PARAM = 4
                   CALL "C$PARAMSIZE" USING 4 GIVING PARAM-SIZE
                   MOVE var-4(1:PARAM-SIZE) TO XMLFIELDVALUE
                   MODIFY XMLNODE @TEXT = XMLFIELDVALUE
               END-IF
           END-IF
           EXIT PROGRAM RETURNING XMLNODE
0 Likes
8 Replies
Highlighted
Absent Member.
Absent Member.

RE: [archive] Acuconnect Distributed processing

One immediate question I have is how the remote object is executed. It is a big difference between a process run on the server as a generic background process versus a process started from the console of a logged in person. There may be restrictions on COM itself, there may be restrictions on disc access etc.
To verify this is not the case, have the server process executed with the same privileges and disc accesses as the user you are logged in with.
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Acuconnect Distributed processing

Thanks,

I understand what you mean re permissions, this is what I do, I have a program which is split in two, part 1 for the client and part 2 for the server. Part 1 receives the XML file as a string from a simple test program that runs interactively on the console. This then calls part 2 via acuconnect which processes this string using the MSXML, Acuconnect has assigned a local user with full rights to the sever. The program running in this states reports a MAV but with no detail other than the offending address in the server program. I also have a .NET web service and an ASP page that calls the same program on the client which in turn calls the server program via acuconnect and it just terminates the program at the APPENDCHILD statement (dead stop) no errors anywhere not even in the trace file.

If I run this using the above three methods on the client without acuconnect it works fine. If I run it on the server without acuconnect it also works fine. I wouldn't have thought that the creating of the object of MSXML would be using DCOM etc, however, if it is what name does it go under as I have looked at the component MMC with no effect.

I have checked and rechecked the permissions with no effect.
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Acuconnect Distributed processing

here are the programs,

client side
CIXMLHT.acu is the test program on the client
XMLINTERFACEFILE.XML is the test xml file
XML.CFG is the test configuration file client side
CIXMLHC.acu is the client side part1
CIXML.auc is the XML routine

Server Side
CIXMLHS.acu is the server side part2
CIXML.acu is the XML routine
XML.CFG is the test configuration file server side

Acuconnect is setup as a standard install usign a default-user

Have a go I get a MAV at line 1104 (000C5C) the APPEND-CHILD statement
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Acuconnect Distributed processing

Could this have anything to do with WMI and winHTTPproxy?
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Acuconnect Distributed processing

As you have the same problem with ASP and .net, it is clearly not an ACUCOBOL-GT specific issue, but a generic one. I figure your best shot is to check out on msdn and the news groups there using your ASP or .net sample. Sorry for this, but I have no in depth expertise on MSXML and researching this would take way more time than I can spend on the forum.
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Acuconnect Distributed processing

Thanks for that, my ASP and .NET solution is at the client end, It still uses Acuconnect to execute the program on the server, the only difference is that these two client programs DO NOT report any errors, only my client Acucobol program reports the error. The other two don't report the error but the server process stops/aborts at exactly the same point.
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Acuconnect Distributed processing

Just wondering, what routine does Acucorp use for its c$XML routine, or is it a propriety home grown routine? If not do you use the MSXML DOM object? Also, is there any possibility that the default-user under acuconnect is having some sought of issue with permissions on the server end? Even though is does all of the read only properties/methods its only when it gets to the write properties/methods that it fails eg appendchild method
0 Likes
Highlighted
Absent Member.
Absent Member.

RE: [archive] Acuconnect Distributed processing

Acu does not use MSXML, the process runs under whatever user designated to run the process. For remote processes this may be the local administrator account, but it is configurable. If you run this through IIS, IIS processes have their own entry for how to run processes. You have to look in Computer Administration and see how it has the IIS set up.
0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.