Hi all,
I have an application that interfaces with a bunch of COM objects through interfaces. A transaction is imported into an accounting package through these COM objects. This was working fine for a while: the user could import a file which I then pushed into the accounting package. The user could then import another file and another file and so on.
Then the user turned on some additional functionality in the accounting package to handle serial numbers. Now if I process a transaction with a serial number the next transaction that I post will fail in one of three places. I was hoping that by wrapping the COM objects within an interface that everything would be cleaned up but that hasn't been the case. My workaround is to have the program close and reopen after a transaction has been imported.
I'd love to figure out why I'm not releasing everything properly. I haven't had to do much analysis at this level before so I'm not sure where to start. I'm using Delphi 2009. The problem is that my computer doesn't exhibit this problem. I can reproduce at will on a test database on their system so whatever strategy I use has to log data to a file or to a debug window that I'm sending messages to because I don't have the IDE installed. MadExecept will tell me the line of code where I'm crashing but the issue, I think, is related to how the COM objects are not being cleaned up properly.
I have an application that interfaces with a bunch of COM objects through interfaces. A transaction is imported into an accounting package through these COM objects. This was working fine for a while: the user could import a file which I then pushed into the accounting package. The user could then import another file and another file and so on.
Then the user turned on some additional functionality in the accounting package to handle serial numbers. Now if I process a transaction with a serial number the next transaction that I post will fail in one of three places. I was hoping that by wrapping the COM objects within an interface that everything would be cleaned up but that hasn't been the case. My workaround is to have the program close and reopen after a transaction has been imported.
I'd love to figure out why I'm not releasing everything properly. I haven't had to do much analysis at this level before so I'm not sure where to start. I'm using Delphi 2009. The problem is that my computer doesn't exhibit this problem. I can reproduce at will on a test database on their system so whatever strategy I use has to log data to a file or to a debug window that I'm sending messages to because I don't have the IDE installed. MadExecept will tell me the line of code where I'm crashing but the issue, I think, is related to how the COM objects are not being cleaned up properly.