I've got a response back from the Developer; a bit of explanation of when this error occurs and possibly why.
This error is generated on a new connection. The client connects to the server and the server tells the client to drop the new connection and to use the specified already existing connection from another connect. The client then attempts to lookup the session the server says to use and it doesn’t exist. This is not supposed to happen, but it can happen if the “unique” id the client sends the server is not unique to the client, and the server confuses this client with another client.
There are a few possibilities for the 3804. We use a simple hash of the computer name to identify clients to the server. If two machines on a network hash to the same value, there can be a conflict causing the 3804. The other possibility is that people are using virtual machines or clones of computers with the same computer name and then it could also happen. I looked at the netlog and there were lots and lots of connects.
Today, I’ve been working on a change where I use an improved hash technique and combine the computer name with the installed product Windows ID. I just need to know if you’ll want an updated sqlbapw.dll for 11.5 and 11.6, or what. I think my fix will randomize things better and the problem might go away.
So, for you Reijnoud, I think you use SB11.5, so I've asked for an updated 11.5 DLL. I will get that to you offline once I receive it.
Tom, since you are using 8.x, this won't be able to be applied to that version. However, hopefully with the explanation that will provide you some clues as to what might be happening at your customer sites.
We indeed use Sqlbase 11.5 sp3, so I'm curious for the new dll.
With the info specified I can have another look on the customers environment.
The computernames they use are (windows 7):
I can tell you, that this error also can occure if you do not have two or more machines (real or virtual) on the network having the same name. In all SQLBase versions (from 6.x up to 11.0.x) I've seen this error in networks without duplicated computer names. If I remember correctly, in most times the 3804 error was after a network problem/error (90xx) had occured.
Today I got a 3804 in the following scenario:
- SB 11.0.2 (latest SP) treasury server on a windows 2003 server
- SB 11.0.2 (latest SP) / TD 4.2 application on windows 7 64 bit client
- Starting the application, Connecting some handles to the database -> 3804 error
(no other TD/SB applications running on the client)
- SQLBase restarted some hours ago
- Client booted 2 hours ago
(no other TD/SB application has been started since reboot)
All computers definitely have different names and different IP addresses.
No computers have been cloned, all computers have been installed separately.
No virtual machines.
=> There must be another reason as the one described by the engineer!
I think we may have a solution to this problem.
If you are still being plagued with the 3804 errors, please contact me directly and we will discuss what the actual problem is, the solution and whether the solution will help you with your particular situation. Send to me on email@example.com
I have the same problem in the following Scenario:
- SB 11.5
- TD 6.2
- .Net Application with .Net Framework 4
- SqlBaseOleDb.dll Version 22.214.171.12432
I have a TD 6.2 win32 Application which calls a Method in an .Net Assembly written with .Net Framework 4.
The call works via an .apl generated for the .Net Assembly using NetExplorer.
Before i call the Assemblie's method i close all open Database Handles on the Gupta Side.
As soon as i try to establish an SqlBase Ole Db Connection from within the Assembly on the .Net Side,
on the first time, i get the Error 3804 Cannot find session. On the second try it works.
This Problem only occurs using a built Gupta .exe file.
If i debug my app with Team Developer, the problem does not occur.
Please provide me with your Informations regarding this error.
Who is online
Users browsing this forum: [Ccbot] and 0 guests