2009-06-12 11 views
0

Wir entwickeln einen Data Synapse-Prozess in C#, der Funktionalität in einer Win32-DLL erfordert. Wir haben keine Probleme damit.Ausführen einer Datensynapse Win32-DLL-Rasterknoten auf einer Windows 64-Maschine?

Die Frage ist, hat es auf einem Windows 64-Bit-System laufen, mit Data Synapse 5.1 Grid-APIs für Windows 64. Während Windows 64 werden die meisten Prozesse laufen transparent mit WOW wir nicht wissen, dass Data Synapse 64er Bit wird in Irgendwie hindert das daran zu arbeiten?

Wer hat das getan?

8 Jun 2009: Update. Wenn wir versuchen, einen win32-Dienst auf dem Win64-Grid auszuführen, treten Probleme auf, weil die Grid-Code-Struktur unter Win64 als 64-Bit-Java ausgeführt wird. Dieses Java ruft unseren Dienst mit einem win64 JINI-Aufruf zu unserem Dienst auf, der als DLL implementiert ist. Leider als Win32 DLL.

Antwort

1

Möchten Sie, dass Ihr C# -Code als .NET-Dienst ausgeführt wird? .NET-Dienste laufen prozessintern, und soweit ich weiß, gibt es keine Möglichkeit, 32-Bit- und 64-Bit-Code in einem einzigen Prozess zu mischen.

Ich sehe zwei Lösungen

1) 32-Bit-Run Datasynapse Motoren oder 2) Ausführen des C# Code in einem Surrogat 32bit-Prozess. Verwenden Sie eine Form von IPC, um zwischen einigen im Engine-Prozess ausgeführten Stub-Code und dem Ersatzprozess zu kommunizieren.

Ich glaube, diese Infrastruktur bereits von Datasynapse gebaut für C/C++ Code und wird IsolateService genannt. Um IsolateService zu verwenden, müsste am entfernten Ende eine einfache C ->. NET-Bridge entwickelt werden oder ein ausführbarer .NET-Wrapper, der entwickelt wurde, um die .NET-DLL zu hosten und COMs zu handhaben.

Nathan

0

Vielleicht können Sie installieren und einen win32 Motor an der win64 Maschine laufen in diesem Fall alles in WOW ist.

0

Wenn Sie versuchen, eine Win32-Engine auf einem win64-Rechner zu installieren, stellen Sie sicher, dass Ihr installierter Manager auch ein 32-Bit-JDK-Java verwendet (suchen Sie die Umgebungsvariable JAVA_HOME).

Um eine 32-Bit-Version auf einer 64-Bit-Maschine ausführen zu können, benötigen Sie ein 32-Bit-Java-JDK, und der DataSynapse-Manager muss auf die 32-Bit-Java-Maschine verweisen Wenn Sie den Manager installieren, sollte die Variable JAVA_HOME auf die 32-Bit-Version verweisen.