Premise Minibroker on 64 bit windows

Motorola Premise

georgejm

Active Member
Hi Everyone,

Well, my old 32 bit server I was using for Premise died. I've been able to rehost Premise on a 64-bit machine running Windows 2008 R2. Most things are working with the exception of any minibroker-based applications. Minibroker seems to be able to enumerate and manipulate any object in Premise, but property change subscriptions appear to be broken. No errors are displayed, it just doesn't work. Anybody else run into this? Anybody have any ideas? Maybe someone with source code (hint-damon).

Thanks,

-John
 
I know Minibroker apps can work on 64-bit versions of Windows. I have a Text-To-Speech driver that runs on Vista 64 and handles Property Subscriptions correctly. The key for me was forcing compilation as a 32-bit app and setting NXCOMPAT to NO. The other issue involved Property Subscriptions within a Windows Service. I found they wouldn't work if they pointed to functions located in the main program (i.e. derived from ServiceBase).

BTW
I put the driver on the back burner because I never resolved another issue to my satisfaction. The driver uses Premise's ServerDiscovery to maintain a connection and Vista 64-bit does something evil with this service. Whereas its ability to connect/reconnect in Win XP is flawless it works poorly, if at all, in Vista 64-bit. I thought Vista's Advanced Firewall was the root evil but even disabling it did not resolve the problem.
 
Thanks! I knew about the forcing to 32 bit. The class constructor for minibroker would fail unless you did that. I'll take a look at NXCOMPAT.

As for functions in the main program, I typically run the guts of my apps on a thread with a procedure that doesn't derive from ServiceBase. That works fine on 32 bit windows. Have you found that call back functions in the "Main" program work if it's on 32 bit and don't work on 64? That would be a very interesting bug....

Thanks again!

-John
 
NXCOMPAT didn't help. However, I did install my app on Windows 2003 R2 x64 and it worked fine. It's just Windows 2008 R2 x64 that's not allowing the property subscription callbacks to fire. I tried various compatability mode settings, but no-joy.

123, I know you've been able to make subscription callbacks work on 64 bit Vista. Have you had any success on Windows 7 64-bit?

Thanks,

-John
 
The callbacks don't work at all (in Windows XP or Vista 32-bit/64-bit) if they are methods of the ServiceBase-derived object. I found that the callbacks would work if they are methods of a class that does not inherit from Servicebase and the class is instantiated in a separate thread.

I haven't tried it on Windows 7 (neither 32-bit nor 64-bit). Currently, I do not have access to a PC equipped with Windows 7.
 

Attachments

  • CodeFragment.png
    CodeFragment.png
    50.6 KB · Views: 36
All of my stuff is running on a separate thread in a class that doesn't inherit from servicebase, so that's not the problem. It works on Windows 7 32 bit (don't have a 64-bit machine with win 7 on it), works on Windows 2003 R2 64-bit, doesn't run on Windows 2008 R2 64-bit. This may not be a 32 vs. 64 bit issue.

Win 7 and 2008 R2 come from the same code base, so it's strange that callbacks work on one and not the other.

Damon, JimSpr, if you guys are monitoring, any ideas?

Thanks,

-John
 
Bumping an old topic here. The open source discussion has renewed my interest in Premise, but I run my stuff on Server 2008 R2 and that was one of the major stumbling blocks for me last time I looked at Premise.

Has there been successful implementations of Premise on Server 2008R2 (or SBS2008) with full minibroker app support?
 
I may take a look at it - I used to run Premise on 32-bit Server 2003 - but not sure what you mean by 'full minibroker support'
 
I may take a look at it - I used to run Premise on 32-bit Server 2003 - but not sure what you mean by 'full minibroker support'
Based on what I read in this thread and a few others, it appears that certain call-back functions don't work on the 64 bit server operating systems. That's what I mean by full support - all functions of the minibroker service work.

When I researched Premise a few years ago, the problems on the server 64 bit operating systems is what kept me from implementing it. Hopefully Premise will go open source and full compatibility with current OS revisions can be achieved.
 
Based on John in VA's last post, the problem may not be due to 32 vs 64 but due to what happened changed between Windows Server 2003 64 and 2008 64.

I doubt creating a 64-bit version of Premise would be an easy trick. Besides, it introduces incompatibilities with a few existing 32-bit drivers. For example, Elve's author recently announced Elve would revert from 64 to 32 bit in order to improve compatibility, most notably with USB-UIRT.
 
I'm not advocating a 64 bit version, I'm just saying it would be good to get the existing app (32 bit) compatible to run reliably and install easily on the current 64 bit OS.
 
I've done extensive digging into this. The problem is with 64 bit versions of windows released after XP. That includes Vista, win7, server 2008, and server 2008 r2. It works on XP, XP 64, 2003, 2003 r2 (32 and 64 bit), and 32 bit win 7.

I'd love to get my hands on the source code for mini broker. I suspect the problem is a dispatch table is being indexed incorrectly.
 
John! Glad to see you on the forums! And of course, your excellent contribution :)
 
Back
Top