cancel
Showing results for 
Search instead for 
Did you mean: 

Issue starting dbmlsrv process in Win 7 64-bit

dukejw
Explorer
0 Kudos

I'm not sure if this issue is related to PB12.6, ASA/Mobilink 16, or just a Win7 64 bit issue, but wondered if any of you have seen it.  I recently took over for a guy that retired who created our app and just learned (a bit) about Mobilink and syncing in the last year or so from him.  I have a good bit of experience, but this if my first foray into the mobile platform.

We have an app which syncs our workers tablets in the field to our consolidated DB on a SqlServer 2008 server.

It works fine on my XP machine and the Win 7 32 bit machines in the field, but I am trying to move the code and setup to my new Win 7 64-bit developer machine.  I have a clean install of PB12.6, ASA16 (I uninstalled PB11.2 temprorarily to exclude it from the issue as there was a conflict previously when starting with PB12.6). 

The problem occurs whey I try to sync from the code - it apparently cannot establish a connection to my local development server because I get an error stating 'unable to establish bidirection connection for dbmlsrv' at the point where the code calls the sync.  If I run the build/sync files locally they work fine.

I have admin rights on the computer, I have tried running as administrator.

Any help/ideas is appreciated.

Thanks,

jeff

Accepted Solutions (1)

Accepted Solutions (1)

dukejw
Explorer
0 Kudos

I did find one other issue that I thought solved the problem, but it only addressed the issue of walking through the code.  I was getting the failure on the isvalid(i_syncwindow), but that turned out to be the red herring - it was the 64/32 bit difference - the ODBC was set for 64bit on the 32 bit program and that is why it was faililng.

Once I added the ODBC to the 32bit side I still get the error that 'Bidirectional! processing requested.  Error - Unable to create dbmlsync process.'

But, at least now I should be able to step further through the code and see what I can find.

I will keep you posted as it develops.

VR,

jeff

chris_keating
Advisor
Advisor
0 Kudos

Check that dbmlsync.exe is in the SQL Anywhere BIN32. If it is missing, it would explain the current problem.

dukejw
Explorer
0 Kudos

That was it Chris - thank-you VERY much.

Answers (2)

Answers (2)

chris_keating
Advisor
Advisor
0 Kudos

The error you cite is not being reported by SQL Anywhere or its components. Can you debug to get the error reported from the sync call. I suspect that the error is -1305. The error message would be MobiLink communication error -- code: %1, parameter: %2, system code: %3 where %1, %2, and %3 will be replaced with context for the cause of the error. That context would help figure out this issue.

As a starting point, this appears to simply be a connectivity issue. Can you ensure that you can ping the host machine where the MobiLink server is running?.

dukejw
Explorer
0 Kudos

Hi Chris,

It does appear to be connectivity - at the section of the code where it is establishing the connection to the server (fails for both the local and the production servers).  I was able to debug a bit more and have narrowed the issue down to the PB code trying to connect to the server - it is currently failing on an isvalid check (if IsValid(i_syncwindow) then) and giving an error code of -1 but on the XP machine the same line works fine.  The syncwindow is null on both machines, but works on the XP and fails on the Win7 64bit.  BTW - this same line of code is in the same function 6 lines earlier and succeeds on the Win7 64bit machine.  That leads me to suspect the issue is occuring before this and is just bubbling up on this line, but haven't been able to isolate it yet.

I am beginning to think it is something specific to 64 bit, but I checked for registry gets/sets to make sure it wasn't a wow6432node issue and didn't find anything there. I checked the firewall after Paul Slater's suggestion, but didn't see any limits there.

I appreciate your help and ideas and am still trying to isolate what is really happening here.  I'll let you know if I find it and please keep the ideas coming.

VR,

jeff

dukejw
Explorer
0 Kudos

BTW - I use the ip addresses for the servers instead of local host or alias - our dns server has gone down before and caused issues so I am in the habit of pinging to get the address and plugging that into the commandline for the sync.

former_member188493
Contributor
0 Kudos

IsValid is a PowerBuilder mechanism.. there is something fundamentally wrong with the PB object in question... that's where you start looking, inside the PB code for more clues.

dukejw
Explorer
0 Kudos

Thanks Breck,

I am looking at the object, When the same line of code worked before and then failed I knew it had to be in the PB code somewhere.  I have gone through the code stepping through on the XP and Win 7 machines simultaneously and so far all the variables and settings are identical until it hit's the 2nd isvalid statement. I was thinking it would be a wow3264node registry issue somewhere, but I have been unable to locate it as of yet.  I have compared all the object variables and they are the same.  The only thing different in 64 bit vs 32 bit that I'm aware of is the wow3264node so that was my main focus once I narrowed it down. 

I'll let you know if I am able to isolate the issue.

VR,

jeff

chris_keating
Advisor
Advisor
0 Kudos

The error cited in your original message is reported in the internals of the MLSync object. 


The IsValid() check only matters if you are displaying the MobiLink Synchronization Status window. If that window IsValid(), the MLSync application object will trigger an event on that Window to log status information. It does nothing specific to the sync so the fact that it is or is not valid should not matter.


I have tried a number of 'connectivity' type issues - ML server down, bad client connection info  - and am not able to reproduce this error.


I would suggest that you might need PowerBuilder help for this issue and more specifically, help from someone with knowledge of the internals.



dukejw
Explorer
0 Kudos

Wow Chris,

I really appreciate the effort you are going to to help - the issue appears to be the program.  It is not able to connect to the server which I start manually (or the production which is a service).

We do not display the status window - we use our own status info in the window of our app.  That just happens to be the line the error is occurring on, but I am missing something.  I have verified that we don't call the registry directly from the code so that doesn't appear to be it.

The PB code works for XP and Win 7 32-bit, but fails when run from Win 7 64-bit.  When we create the database we use the build and sync bat files created in the deploy and they work fine, but when we call if from code for future syncs is when we get the process failure error.  That indicates to me the issue is related in some way to it being a 64 bit machine.  I just hope it doesn't come down to a setting on the machine itself causing all this - lol.

I will continue looking at the code and settings and, again, I really appreciate the effort you have put in on this. 

VR,

jeff

Former Member
0 Kudos

Hello Jeff,

Every SQL Anywhere installation I've done on Win 7 64 bit has needed it to be allowed access through the Windows firewall. Just a thought.

HTH, Paul

dukejw
Explorer
0 Kudos

Thanks Paul,

I checked the firewall and that's fine. 

Please see my reply to Chris Keating below too.

VR,

jeff