cancel
Showing results for 
Search instead for 
Did you mean: 

How do I use ASE 15.7 32-bit ODBC driver with MobiLink 12.0.1 on 64-bit Windows?

Breck_Carter
Participant
14,358

The ASE 64-bit ODBC driver is hard (impossible?) to get for the developers edition of ASE 15.7

   C:\\Sybase\\DataAccess\\ODBC\\dll\\sybdrvodb64.dll

The 32-bit MobiLink 12.0.1 server will not run on 64-bit windows, and the 64-bit MobiLink 12.0.1 server throws an "architectural mismatch" error when the ASE 32-bit ODBC driver is used

   C:\\Sybase\\DataAccess\\ODBC\\dll\\sybdrvodb.dll

Everything else works fine (32-bit SQL Anywhere 12.0.1 with 32-bit ODBC proxy tables on ASE 15.7, 32-bit Sybase Central, etc), it's just the MobiLink 12.0.1 server that has this limiitation.

Breck_Carter
Participant
0 Kudos

Temporary workaround: Falling back to MobiLink 11.0.1 where there is no limitation on running the 32-bit version of mlsrv11.exe on 64-bit Windows.

VolkerBarth
Contributor

FWIW, at least for v16, ASE 15.7 seems to be an officially not supported version (and for v12, we both are aware that the official document is not currently available online...) - from the Recommended ODBC Drivers for 16.0 MobiLink page:

We are unable to recommend an ASE ODBC driver at this time. We continue to test against ASE and are working with the ASE team to resolve issues. Watch this page for changes.

Ah, the situation is different for v12.0.1, as Jose Ramos tells on a comment from that page:

We've experiencing crashes with ASE 15.7 during our QA testing for MobiLink (v16). We're working with the ASE team to solve that issue, but cannot provide a time estimate. To be on the safe side, I suggest you use ML (v12.0.1) instead in your production environment.

Breck_Carter
Participant

An even better alternative would be to use SQL Anywhere 16 as the consolidated database instead of ASE 15.7, but alas...

Breck_Carter
Participant
0 Kudos

The workaround appears to be ok, but it did require all the Version 12 ml_objects to be dropped from ASE 15.7 and replaced with Version 11 ml_objects before mlsrv11.exe would function properly.

For the record, here's part 1 of the DROP order that works in the face of RI constraints...

drop procedure ml_add_passthrough_script
go
drop procedure ml_delete_passthrough_script
go
drop procedure ml_add_passthrough
go
drop procedure ml_delete_passthrough
go
drop procedure ml_add_passthrough_repair
go
drop procedure ml_delete_passthrough_repair
go
drop procedure ml_add_user
go
drop procedure ml_delete_remote_id
go
drop procedure ml_delete_user_state
go
drop procedure ml_delete_user
go
drop procedure ml_delete_sync_state
go
drop procedure ml_reset_sync_state
go
drop procedure ml_delete_sync_state_before
go
drop procedure ml_add_lang_table_script_chk
go
drop procedure ml_add_lang_table_script
go
drop procedure ml_add_table_script
go
drop procedure ml_add_java_table_script
go
drop procedure ml_add_dnet_table_script
go
drop procedure ml_add_lang_conn_script_chk
go

drop procedure ml_add_lang_connection_script
go
drop procedure ml_add_connection_script
go
drop procedure ml_add_java_connection_script
go
drop procedure ml_add_dnet_connection_script
go
drop procedure ml_add_property
go
drop procedure ml_add_column
go
drop procedure ml_share_all_scripts
go
drop procedure ml_add_missing_dnld_scripts
go
drop procedure ml_set_device
go
drop procedure ml_set_device_address
go
drop procedure ml_upload_upd_device_address
go
drop procedure ml_set_listening
go
drop procedure ml_set_sis_sync_state
go
drop procedure ml_upload_update_listening
go
drop procedure ml_delete_device_address
go
drop procedure ml_delete_listening
go
drop procedure ml_delete_device
go
drop procedure ml_qa_add_delivery
go
drop procedure ml_qa_upsert_global_prop
go
drop procedure ml_qa_handle_error
go


drop procedure ml_qa_stage_status_from_client
go
drop procedure ml_qa_staged_status_for_client
go
drop procedure ml_ra_assign_task
go
drop procedure ml_ra_int_cancel_notification
go
drop procedure ml_ra_cancel_notification
go
drop procedure ml_ra_cancel_task_instance
go
drop procedure ml_ra_delete_task
go
drop procedure ml_ra_get_task_status
go
drop procedure ml_ra_notify_agent_sync
go
drop procedure ml_ra_notify_task
go
drop procedure ml_ra_get_latest_event_id
go
drop procedure ml_ra_get_agent_events
go
drop procedure ml_ra_get_task_results
go
drop procedure ml_ra_get_agent_ids
go
drop procedure ml_ra_get_remote_ids
go

Breck_Carter
Participant
0 Kudos

Here's part 2...

drop procedure ml_ra_set_agent_property
go
drop procedure ml_ra_clone_agent_properties
go
drop procedure ml_ra_get_agent_properties
go
drop procedure ml_ra_add_agent_id
go
drop procedure ml_ra_manage_remote_db
go
drop procedure ml_ra_unmanage_remote_db
go
drop procedure ml_ra_delete_agent_id
go
drop procedure ml_ra_int_move_events
go
drop procedure ml_ra_delete_events_before
go
drop procedure ml_ra_get_orphan_taskdbs
go
drop procedure ml_ra_reassign_taskdb
go

drop procedure ml_ra_ss_end_upload
go
drop procedure ml_ra_ss_download_prop
go
drop procedure ml_ra_ss_upload_prop
go
drop procedure ml_ra_ss_download_task
go
drop procedure ml_ra_ss_download_task_cmd
go
drop procedure ml_ra_ss_download_remote_dbs
go
drop procedure ml_ra_ss_download_ack
go
drop procedure ml_ra_ss_agent_auth_file_up
go
drop procedure ml_ra_ss_agent_auth_file_down
go
drop procedure ml_ra_ss_download_task2
go

-----------------------------------------------------------------------------------
drop view ml_connection_scripts
go
drop view ml_table_scripts
go
drop view ml_columns
go
drop view ml_qa_messages_archive
go
drop view ml_qa_messages
go



-----------------------------------------------------------------------------------
drop table ml_ra_managed_remote
go
drop table ml_ra_agent_property
go
drop table ml_ra_notify
go
drop table ml_ra_task_property
go
drop table ml_ra_task_command_property
go
drop table ml_ra_deployed_task
go
drop table ml_ra_task_command
go
drop table ml_ra_agent
go
drop table ml_ra_task
go
drop table ml_device_address
go
drop table ml_listening
go
drop table ml_passthrough_status
go
drop table ml_passthrough_repair
go
drop table ml_passthrough
go
drop table ml_column
go
drop table ml_subscription
go
drop table ml_connection_script
go


drop table ml_table_script
go
drop table ml_user
go
drop table ml_database
go
drop table ml_table
go
drop table ml_script
go
drop table ml_script_version
go
drop table ml_property
go
drop table ml_scripts_modified
go
drop table ml_primary_server
go
drop table ml_passthrough_script
go
drop table ml_device
go
drop table ml_sis_sync_state
go
drop table ml_qa_repository
go


drop table ml_qa_notifications
go
drop table ml_qa_delivery
go
drop table ml_qa_status_history
go
drop table ml_qa_global_props
go
drop table ml_qa_repository_props
go
drop table ml_qa_repository_archive
go
drop table ml_qa_delivery_archive
go
drop table ml_qa_status_history_archive
go
drop table ml_qa_repository_props_archive
go
drop table ml_qa_repository_staging
go
drop table ml_qa_status_staging
go
drop table ml_ra_schema_name
go
drop table ml_ra_event
go
drop table ml_ra_event_staging
go
drop table ml_ra_agent_staging
go

Accepted Solutions (0)

Answers (1)

Answers (1)

Breck_Carter
Participant

Answer: You can't.

Workaround: Switch back to using SQL Anywhere and MobiLink Version 11 which does let you use the 32-bit ODBC driver for ASE 15.7 on a 64-bit Windows computer... see the comments above.

Alternative:

  1. Obtain a copy of the 64-bit ODBC driver for ASE 15.7 (sybdrvodb64.dll), either from the ASE 15.7 SDK or copied from some other machine (see C:\\Sybase\\DataAccess\\ODBC\\dll\\sybdrvodb64.dll).

  2. Copy the file to C:\\Sybase\\DataAccess\\ODBC\\dll\\sybdrvodb64.dll on the computer that's going to run mlsrv12.exe.

  3. Create this command file in the same folder: regsvr32 sybdrvodb64.dll

  4. Use "Run as administrator" to run that command file.

  5. Proceed to use the 64-bit ODBC Administrator to create a DSN for your ASE 15.7 consolidated database.

64-bit ODBC Data Source Administrator: 
   %windir%\\system32\\odbcad32.exe 
   Add...
      ODBC Driver Name:  Adaptive Server Enterprise
   Finish
   see "Adaptive Server Enterprise"
      Data Source Name:  ddd
      Server Name:       sss
      Server Port:       5000
      Database Name:     ddd
      Login Id:          sa
      Password:          
      Test Connection
      OK