![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
25 years ago I wrote a system to run reports in the background at a client site. It was on a GA system and I could have sworn that I wrote the responses into a record and then did an execute of the program and passed the data via data statements. Since it was so long ago and just a memory, it is also possible that I wrote the data out as a proc and put all the responses into the proc and then deleted itself - I just can not remember. Does anyone know if you can pass data into a phantom on D3? Thanks Eugene |
#3
| |||
| |||
|
|
My memory has faded of GA Zebra but your post reminds me of some special functionality that R91 had. Maybe you're thinking of same? I'm also reminded of an incredibly cool inter-process communications function in D3 which would allow you to pass data among running D3 processes including phantoms. I was looking for something like this for years. But I was told by TigerLogic that this great functionality was never really supported and should not be used. Dang, that was a major tease. I'm just saying, sometimes they build in functionality and then when no one uses it they decide it probably wasn't a good idea ... oh well, old topic. There are still a few ways to skin this cat. 1) Check out the Z command. IIRC this is a BASIC wrapper around something else so you can see how they accept a stack of data and then send that to the phantom. 2) I think most people (including myself) would put the phantom into a Read loop with a periodic sleep, where the phantom wakes up, reads a file for new command, then goes to sleep for some seconds when there's nothing there. The above IPC would eliminate the resource hit of polling a file. RIP 3) To eliminate the pain of polling, in *nix you can do what the D3 docs call sychronization. Search the D3 Ref for SIGUSR1 or PIPE. 4) Finally, I haven't done anything like this in a while but you could put your phantom into an input loop something like this: prompt "" loop stack = "" loop input cmd until cmd = "exec" or cmd = "exit" do stack<-1> = cmd repeat until stack<1> = "exit" do * execute commands in stack repeat And then from another process: do.comms: * this pattern ensures port is closed gosub get.required.phantom.port success = 0 execute "dev-att " ortgosub issue.command execute "dev-det " ort* success may be 0 or 1 return issue.command: * if done then send 'exit' to port else null return end send 'some command' to port else return send 'another instruction' to port else return send 'exec' to port else return success = 1 return HTH T eppick77 wrote: 25 years ago I wrote a system to run reports in the background at a client site. It was on a GA system and I could have sworn that I wrote the responses into a record and then did an execute of the program and passed the data via data statements. Since it was so long ago and just a memory, it is also possible that I wrote the data out as a proc and put all the responses into the proc and then deleted itself - I just can not remember. Does anyone know if you can pass data into a phantom on D3? Thanks Eugene |
#4
| |||
| |||
|
|
Does anyone know if you can pass data into a phantom on D3? Thanks Eugene |
#5
| |||
| |||
|
|
Does anyone know if you can pass data into a phantom on D3? |
#6
| |||
| |||
|
|
On 2010-06-22 11:36:11 -0400, eppick77 <eppic... (AT) yahoo (DOT) com> said: Does anyone know if you can pass data into a phantom on D3? Yes. *Use the Z command and you'll see where in the process you have the opportunity to stack input data. -- Kevin Powick |
#7
| |||
| |||
|
#8
| |||
| |||
|
#9
| |||
| |||
|
|
Hi all, QM 2.10-4 will add an optional keyword to the PHANTOM command to transfer the DATA queue of the parent into the phantom process. PHANTOM DATA RUN MYPROG A patch is available for 2.10-3. [Ross: Does this put us ahead of D3 again for responsiveness?] Martin Phillips, Ladybridge Systems |
#10
| |||
| |||
|
![]() |
| Thread Tools | |
| Display Modes | |
| |