NAS und MSMQ auf 64Bit-System

11. November 2011 12:47

Hi allerseits,

wir benutzen Navi 4.03 mit dem nativen Navi-Server und haben einen NAS auf dem verschiedene Dinge (unter anderem Kommunikation mit einem Webshop) abgehandelt werden. Der Nas läuft auf einem Windows 2003er Server (32 Bit). Jetzt haben wir einen neuen Server (Windows 2003 aber 64 Bit), darauf läuft die Kommunikation via Message-Queuing nicht mehr. Bei Mibuso habe ich dazu auch einige Threads gefunden, anscheinend laufen die Navision Kommunikations-Komponenten (NSComCom + MSMQBusAdapter) nicht auf 64bittigem OS. Als Alternative würde ich gerne die original Microsoft-Komponenten (Microsoft Message Queue 3.0 Object Library) benutzen.

Hat von Euch schon jemand Erfahrungen damit gemacht, bzw. gibt es eine andere Alternative (ausser wieder das 32bittige OS zu benutzen) ?

Vielen Dank

11. November 2011 12:56

[Beitrag aus dem Forum NAV 4.xx nach Navision Application Server verschoben.]

Gruß, Natalie
MSDynamics.de-Team

Re: NAS und MSMQ auf 64Bit-System

16. November 2011 09:27

so, ich habe es jetzt mit den Microsoft-Komponenten ('Microsoft Message Queue 3.0 Object Library') gemacht, es gibt dort einen 'Message Arrived' Trigger, der wird allerdings auch nicht ausgelöst, selbst in der 32 BIT-version nicht :-(


Code:
Name   DataType   Subtype   Length
MQQueue   Automation   'Microsoft Message Queue 3.0 Object Library'.MSMQQueue   
MQMessage   Automation   'Microsoft Message Queue 3.0 Object Library'.MSMQMessage   
MQEvent   Automation   'Microsoft Message Queue 3.0 Object Library'.MSMQEvent   
MQQueueInfo   Automation   'Microsoft Message Queue 3.0 Object Library'.MSMQQueueInfo   


OnRun()
CREATE(MQQueueInfo);
MQQueueInfo.FormatName('Direct=TCP:192.168.150.239\private$\test');
MQQueue := MQQueueInfo.Open(1,0);
CREATE(MQEvent);
ReceiveTimeOut := 1000;
Cursor := 0;
MQQueue.EnableNotification(MQEvent,Cursor,ReceiveTimeOut);

MQEvent::Arrived(Queue : Automation "''.IDISPATCH";Cursor : Integer)
MESSAGE('MS Message arrived');

MQEvent::ArrivedError(Queue : Automation "''.IDISPATCH";ErrorCode : Integer;Cursor : Integer)
MESSAGE('MS Message error');


Die Codeunit läuft als Single-Instance.
Die Trigger MQEvent::Arrived und MQEVent::ArrivedError werden automatisch von der Automation-Variable MQEvent angelegt. Der Trigger ArrivedError wird auch wunderschön ausgelöst, wenn keine Message in der Queue drin ist (jeweils nach 1 Sekunde). Wenn jetzt eine Message 'reinkommt, dann wird zwar der ArrivedError-Triger nicht mehr ausgelöst, das Teil "merkt" also, dass eine Message da ist, der Arrived-Trigger wird allerdings nie ausgelöst.
Natürlich könnte ich mit einem Timer arbeiten, aber wenn die Komponente schon mal einen Trigger anbietet...

Hat jemend von Euch schon mal mit diesen Komponenten gearbeitet und ist zu einem Ergebnis gekommen?

Re: NAS und MSMQ auf 64Bit-System

20. März 2012 09:21

Hallo,

ich wollte mal Fragen, ob Du hier weiter gekommen bist, was NAS/MSMQ und 64bit betrifft. Im Zuge einer Hardware-Erneuerung würden wir gerne die NAS mit umziehen und stehen vor den gleichen Problem. Vielen Dank.

Re: NAS und MSMQ auf 64Bit-System

20. März 2012 10:01

Ja, wir sind da weitergekommen. Wir setzen Windows 2008 Server ein und es funktioniert. Ich weiss im Moment nicht mehr so genau was wir da getan haben, ich glaube wir haben irgendwelche DLLs aktualisiert. Leider bin ich diese Woche nicht im Büro. Ich werde nächste Woche mal reinschauen und hier berichten.

Re: NAS und MSMQ auf 64Bit-System

26. März 2012 16:10

so, heute konnte ich nachsehen. Also wir haben windows 2008 Server 64 Bit im Einsatz. Die Version der NAS.EXE ist 4.0.3.30698. Die NsComCom2.dll und MSMQBusAdapter.dll sind 4.0.3.29649.

Das funktioniert soweit alles problemlos. Unsere ersten Versuche waren mit Windows 2003 Server 64 Bit, das hat damals nicht funktioniert.