Hi. I've written a C++ application running on Windows 2000. It performs an RfcOpenExtV3 call. If this call fails the application waits about 30 seconds and tries again. The reason for the failure is the redundant SAP system I'm trying to establish a connection to is taken down on weekends for several hours. After some number of attempts at reopening I get into a very strange condition where I'm sitting on an INT 3 instruction (breakpoint). None of my code is on the stack in the thread related to the INT 3. I will capture the 5 items on the stack the next time this happens so I can present accordingly. I did some reading/investigating about a possible timing problem in socket handling, COM and RFC but I don't want to speculate too soon incase someone else has seen this condition and can recommend a program change, library update, Windows patch (currently Win2K SP2) or something I have yet to consider. Any help would of course be greatly appreciated 😊
Hi Howard!
SAP systems need quite a time for startup. You are definitely hit startup-phase with your remote call.
If no other options pop up, here an alternative plan:
- use ping instead of repeated RFC
- if ping is not successful -> that's a shutdown
- first successful ping triggers a longer waiting period
- normal RFC
Try to get startup time (5 minutes, 10 minutes), so that your waiting will ensure complete system startup. Maybe ping is still successful during shutdown -> first few (3?) tries might be with RFC, then trigger wait period for shutdown time.
But maybe you got better solution,
regards,
Christian
Add a comment