New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remote events don't work [DNET140] #150
Comments
Commented by: @dyemanov What about the post-Beta2 snapshots? Do they have the same issue? |
Commented by: Viner Mihail (mviner) Current snapshot didn't fix the problem. As well as current FirebirdClient build. |
Commented by: @hvlad Full text of exception and reproducible example would help |
Commented by: Viner Mihail (mviner) Here's Microsoft Visual Studio Project for .NET Framework 2.0. |
Modified by: Viner Mihail (mviner)Attachment: FbRemoteEventTest.zip [ 10680 ] |
Commented by: Viner Mihail (mviner) Thrown FirebirdSql.Data.Common.IscException indicates: |
Commented by: @hvlad 1. I have no VS 2008 (why should i have it ???) Do you think your test case is useful for anyone ??? Does you reported this issue to the net-provider support list ? |
Commented by: @cincuranet Hi guys. I'm watching this issue. I'll try to do the test case and send you result. Just wait few days. |
Commented by: @hvlad This is ancient bug in NetProvider : GdsDatabase.ConnectionRequest reads responce not correctly. It is used recently fixed bug (CORE1460) Below is draft diff to resolve this issue. Checked agains FB 1.5.2, FB 2.0.3 and current HEAD. cvs -z9 diff -u -wb -- GdsDatabase.cs (in directory F:\FB2\NETProvider\NETProvider_20\source\FirebirdSql\Data\Client\Gds\)
|
Modified by: @carlosgaFix Version: 2.5.0 [ 10170 ] Component: http://ADO.NET Provider [ 10041 ] assignee: Carlos Guzman Alvarez [ carlosga_fb ] |
Commented by: @carlosga I will fix it tomorrow that i have free evening ^^ |
Commented by: @cincuranet OK. :) |
Commented by: Erick Phillipe Rezende de Almeida (ephillipe) Hi, I test last version of FirebirdSql.Data.FirebirdClient.dll [2.5.0.0] and the error continue. em FirebirdSql.Data.Client.Managed.Version10.GdsConnection.Connect() |
Commented by: Richard Keast (systemicanomaly) disregard, furthur testing needed on my part |
Commented by: Steven Rae (stingrae) Has this issue been resolved yet? |
Commented by: @cincuranet The fixture isn't correct. From list: From: Christian Nylund // Add callback to the Firebird events // Queue events The code above returns the error described in DNET140 when running provider 2.5.0 on Vista (any DB version) and also when running provider 2.1.0 on Vista (only against 2.1 DB though). Both works fine on my XP developer machine regardless on the version of the DB. |
Modified by: @cincuranetassignee: Carlos Guzman Alvarez [ carlosga_fb ] => Jiri Cincura [ cincura_net ] status: Resolved [ 5 ] => Reopened [ 4 ] resolution: Fixed [ 1 ] => |
Commented by: @cincuranet rev.772 |
Modified by: @cincuranetstatus: Reopened [ 4 ] => Resolved [ 5 ] resolution: Fixed [ 1 ] Fix Version: 2.5.0 Alpha 3 [ 10261 ] |
Modified by: @cincuranetFix Version: 2.5.0 [ 10170 ] => |
Commented by: Richard Clarke (conhulio2000) Hi, I would really like this part of it to work.... :-) Its important that i use this method of getting data, because the traditional way is not efficient enough for me. As for me - we are using Interbase 7.1. And i tested the events on my Developer machine WinXP Pro, and worked fine. but for some reason when i deploy it to our testing server (Windows Server 2003 Standard SP2), it doesnt work at all. and comes back with the error : Unable to complete network request to host "n.n.n.n". which is strange, when i checked database connection with our admin tool to this server it works fine. So - im unsure what the problem here is with this. public virtual string GetServerVersion()
Actually - While writing this i added log4net, and started to debug at runtime the problem. And i identified the problem to be here: connection.Connect(); in this function: public GdsEventManager(int handle, string ipAddress, int portNumber) in Version 10 i think the problem is that our server is running behind a firewall, and its routing is masked, and Interbase doesnt know about it, so when we ask Interbase to give an Event socket, it doesnt know that we cant connect to it. MORE UPDATE: i just found this article: http://www.firebirdsql.org/doc/whitepapers/events_paper.pdf this will may be explain part of the reason why i am having problems with Events, as this is all i can think is the problem, as on my developer machine its fine, and there is no firewall between my desktop and the Server, in the production environment there is, so this could be the problem. Take a read, its worth it for future reference. |
Commented by: @cincuranet Events may fail in many cases - NAT, FWs etc. See i.e. the comment in Firebird source code: |
Commented by: Richard Clarke (conhulio2000) Hi again, i tried this, i added log4net debugging, so i could see what was happenning along the way. The IP Address is the same IP Address as the IB Server. Problem is - the Firewall locks down the ports except 3050. So - my problem is how do i get Interbase to stop randomising the remote events port. I understand in Firebird, you can set the RemoteAuxPort in the config which presets the port, in Interbase i could not find such a parameter. :-( So - my question is - can you suggest any good proxy software that can notify back Events ? Otherwise i will have to create one. :-( Richard |
Submitted by: Viner Mihail (mviner)
Attachments:
FbRemoteEventTest.zip
Creating remote events monitoring connection via Firebird .NET Provider 2.0:
FbConnection MonitorConnection = new FbConnection(ConnectionString);
MonitorConnection.Open();
FbRemoteEvent MonitorEvent = new FbRemoteEvent(MonitorConnection, new[] { "DataChanged" });
MonitorEvent.QueueEvents();
QueueEvents fails with:
Exception of type 'FirebirdSql.Data.Common.IscException' was thrown.
at FirebirdSql.Data.Client.Gds.GdsConnection.Connect(String dataSource, Int32 port, Int32 packetSize, Charset charset)
at FirebirdSql.Data.Client.Gds.GdsEventManager..ctor(Int32 handle, String ipAddress, Int32 portNumber)
at FirebirdSql.Data.Client.Gds.GdsDatabase.QueueEvents(RemoteEvent events)
at FirebirdSql.Data.Common.RemoteEvent.QueueEvents()
at FirebirdSql.Data.FirebirdClient.FbRemoteEvent.QueueEvents()
The bug occurres only under Firebird 2.1 Beta 2.
The same code under Firebird 2.1 Beta 1 and earlier work fine.
Commits: 35e905e FirebirdSQL/jaybird@6e30a33 FirebirdSQL/jaybird@c577d79
The text was updated successfully, but these errors were encountered: