123
Senior Member
One thing that has always bugged about Premise Builder is that it fails to list all available Premise Servers. All it does is show "localhost". The problem was mentioned in this thread.
I used a network sniffer to observe Builder's communications and learned it employs the SSDP protocol to request and discover available Premise Servers. SSDP talks UDP via port 3976. I also learned that you need to open this port on each PC equipped with Premise Server. I added "prkernel.exe" (that's Premise Server) as an Exception to Windows Firewall and that did the trick on one PC. On another PC, this techique was insufficient and I had to explicitly open port 3976 to UDP traffic.
Did this fix Builder? No. When Builder starts it issues an "M-SEARCH" command and all Premise Servers dutifully reply, yet Builder does nothing with their responses. On the other hand, if you restart a Premise Server, Builder will see and display the Server's name ... but this only happens when a Server is restarted so it's not very useful.
Why all of this interest in Premise's Server Discovery mechanism? Because it is very useful when writing an application or driver based on MiniBroker. In MiniBroker, there's a method called "SubscribeToDiscovery" and it informs you of a Premise Server's status:
I used a network sniffer to observe Builder's communications and learned it employs the SSDP protocol to request and discover available Premise Servers. SSDP talks UDP via port 3976. I also learned that you need to open this port on each PC equipped with Premise Server. I added "prkernel.exe" (that's Premise Server) as an Exception to Windows Firewall and that did the trick on one PC. On another PC, this techique was insufficient and I had to explicitly open port 3976 to UDP traffic.
Did this fix Builder? No. When Builder starts it issues an "M-SEARCH" command and all Premise Servers dutifully reply, yet Builder does nothing with their responses. On the other hand, if you restart a Premise Server, Builder will see and display the Server's name ... but this only happens when a Server is restarted so it's not very useful.
Why all of this interest in Premise's Server Discovery mechanism? Because it is very useful when writing an application or driver based on MiniBroker. In MiniBroker, there's a method called "SubscribeToDiscovery" and it informs you of a Premise Server's status:
- If it is present.
- When it starts.
- When it stops.