Any help much appreciated. I am a Java developer, not a Solaris adept. I'm having an issue reopening serial port with the Java app I am developing.
I develop in Windows and deploy the app on Solaris 10 (Sunfire X4170 with Xeon.) On the target machine my app uses the two serial ports /dev/cua/comf1a and /dev/cua/comf1b. If a port cable is unplugged my app detects this (by heartbeats failing to be acknowledged) and closes and then reopens the port. There is no issue in Windows; the app can close and open the port again. But on Solaris, although the app has no trouble opening ports at launch, I get "Device busy" when the app tries to reopen the port, having closed it. I can then shut down and quickly restart the app, and it has no issue opening the ports again on restart. I am sure I am not keeping any ties between the app and the closed port; I am closing input streams and output streams. And there is no issue in Windows. So I think this is an OS-level issue. I have tried making the app wait 15 minutes after closing and before reopening; this doesn't help. I'm wondering whether Solaris has marked the port as in use by the app for the duration of the run of the app so that the port may be closed but not reopened, even by the same app itself.
Thank you for any help you can give me with this.