Matt,
If thread forwarding worked the way I would like it to, that is what I would use (along with some other functions).
What we do here (from a high level) is we set up another site (could be done in the same site, different processes).
In the other site (we call it a ‘mock’ site) we have a thread setup to listen via TCP/IP localhost on the port that the original thread is sending. Normally this thread is off.
We then static raw route all messages coming in to a thread which is a file protocol.
We have another set of threads in another process in this mock site which will read the file (fileset local) created by the first process and route (static raw again) to a TCP/IP thread configured same as the original Client.
During a down time, we:
stop the original Client
change the NetConfig to point that thread to localhost (this is where forwarding would come in handy)
in the mock site start the receiving thread (so that we are now listening on the correct port localhost.
start the original client (now sending to localhost – the mock thread).
If the downtime will be very long, we have scripts that cycle the file being created in the mock site so we don’t run into a failure due to the file getting too large.
Once the downtime is done:
stop the orginal thread allowing messages to queue
stop the receiving thread
stop the file writing thread
copy the files to the directory the file reading thread is scanning
start the mock sending thread (sending to the real destination)
allow all of the files to finish processing
change the NetConfig for the original thread back to the correct Host (from localhost).
start the original thread to deliver the messages queued during the startup/recovery.
No extra Tcl involved.
This is in use here for virtualy all of our real time integrations.
We have additional considerations when the original destination is not tcp/ip.
Jim Kosloskey
email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.