I would start by looking at the TCL procs being called by any process that shows the leaked handles in the log file and see what is being allocated but not cleaned up.
The most common causes are making a copy of an incoming message to make an outgoing message without cleaning up the incoming message or the copy, whichever the case may be.
Here is a best practice I do when working with datums
#————————————————–
# save the current datum list
# that will need to be reset when this proc is done
#————————————————–
set datum_list [datlist]
.
.
.
#——————————————————————-
# reset the datum list back to what is was when this proc was called
#——————————————————————-
hcidatlistreset $datum_list
If creating a grm handle be sure to clean it up before processing the next message something like this example:
set ghd [grmcreate -msg $mh hl7 2.3.1 blood_bank_progesa ORM_O01]
.
.
.
if {![cequal $ghd “”]} {
grmdestroy $ghd
}
The thing to keep in mind if any action is taken to create something be sure an action is taken to clean it up before processing the next message in the pipe.
We are human and overlook this but the process log files help bring it to our attention as well as monitoring processes to see if any constantly grow in RAM.
Sounds like you are gaining insight to narrow the focus and find some if not most of them and what might be causing them.
Russ Ross
RussRoss318@gmail.com