Hello, right now, we cannot connect MobiLink to a MS Azure database. mlsrv17 seems to believe it is connecting to a standard MS SQL Server database and tries to retrieve information from system views like dm_os_cluster_nodes which are not present in an Azure database. I know Azure is not on the list of supported consolidated databases but I wonder if someone got it running or wether development has plans to support it? TIA, Michael |
For the record: ML seems to support Azure databases starting with build 17.0.7.3903. At least I just came accross that entry in the readme file of 17.0.8.4003: ================(Build #3903 - Engineering Case #806950)================ The SQLA MobiLink server on Windows now supports SQL server databases running in Microsoft Azure: 1) Setup file: Due to some differences between a regular SQL server and a SQL server running in Microsoft Azure, the MobiLink server setup script file has been modified. Now the SQL server running in Microsoft Azure shares the same MobiLink server setup script file as the regular Microsoft SQL server. The filename of the setup script is syncmss.sql and it can be found under MobiLink\setup under the SQLA installation. Please only use the one that comes with the SQLA installation image. The setup script file can be applied to a Microsoft Azure SQL server database through the application named Microsoft SQL Server Management Studio; 2) ODBC driver: The recommended ODBC driver for Microsoft Azure is "ODBC Driver 13 for SQL Server". This ODBC driver can be downloaded from the Microsoft download site. The other SQL Server ODBC drivers are not tested and are not recommended; 3) Behaviors that differ from the regular SQL server: a) Blocking behavior By default, uncommitted operations (insert, update, and deletes) will not prevent any other connection to access the same tables in Azure. This behavior may differ from the regular Microsoft SQL server. Therefore, the -dsd (disable snapshot isolation for download) option should not be used, if the timestamp-based download logic is used in the synchronization. Otherwise it could cause data-inconsistency; b) Column default values Default values support literals and constants only in Azure. Non-deterministic expressions or functions, such as GETDATE() or CURRENT_TIMESTAMP, are not supported. |
Well done, finding that! (it is listed way down under Bug Fixes rather than New Features) ...someone should post the latest read-me files, somewhere :) Well, apparently the missing support for Azure SQL databases is considered a bug.
You mean here? :) Well, I like that public resource - but it seems to get updated only now and then, and the readme for 17.0.6 is empty, as I reported a while ago, and newer ones are fully missing.
(08 Aug '17, 06:15)
Volker Barth
Replies hidden
As you note, this URL works: http://sqlasupport.sap.com/readme/index.html However, this one does not: Instead, it redirects to a location with no SQL Anywhere content: https://www.sap.com/trends/mobile-technology.html ...shed a tear for SAP Management, they are so very afraid of SQL Anywhere! :)
(08 Aug '17, 06:26)
Breck Carter
Breck-san, so you say the following does not relate to SQL Anywhere:
? Aside: I'm currently exploring SAP's
(08 Aug '17, 06:30)
Volker Barth
Show me where it mentions SQL Anywhere or MobiLink or UltraLite. As far as I can tell, "SAP's solutions" do not include any of those.
(08 Aug '17, 06:33)
Breck Carter
Oh, I don't know, all those fancy images made me feel so happy that I just ceased to read on:)
(08 Aug '17, 06:40)
Volker Barth
1
LOL! ...no, wait, that's what I need to do too, to avoid WrongThink!
(08 Aug '17, 08:33)
Breck Carter
We did introduce support for Azure as a new feature. I will address getting the readmes to reflect it as a new feature.
(08 Aug '17, 08:44)
Chris Keating
Replies hidden
@Chris, could you also help to maintain/update the published read me files, please...:)
(08 Aug '17, 09:23)
Volker Barth
Comment Text Removed
|
FWIW the "traditional" way to implement a consolidated database running on non-supported software is to use a SQL Anywhere "stand-in" consolidated database with schema that matches the Azure database and ODBC proxy tables (remote server feature of SQL Anywhere) to pass on the insert, update, delete and select statements received from the MobiLink server event scripts.
IMO is far far far far far more likely that the current proxy table middleware will work as-is between SQL Anywhere and Azure, than a MobiLink ODBC driver for Azure will ever be implemented. Consider this: SAP removed the MobiLink driver for HANA from SQL Anywhere 17 altogether, preferring to move (some of) the functionality over to HANA itself... how likely do you think it will be that SAP will implement a MobiLink interface to a competitor's cloud product?
Gosh, lemme think :)...
Breck,
This happens very rarely but this time I disagree with you.
If you were right, Sybase would have never supported consolidated databases other than ASE and SQLA. But they did, from the start. For good reasons. The ML approach of using ODBC to access the consolidated and support various products accepts the fact that there are competitors out there and that customers may already use a particular db product for years and NOW look for a sync solution with notebooks or other mobile devices. Why would SAP skip the opportunity to sell hundreds our thousands of SQLA or UltraLite licences in projects they would never ever get if they really tried to force an existing MS happy camper to switch to HANA - something that is very unlikey and sales suicide.
It has always been ML product policy to embrace existing consolidated environments and use ML to sell SQLA and UltraLite licences. Anything else would be a bad idea.
Kind regards, Michael
Given the fact that ML usually supports the "newer" versions of consolidated databases(say, v17 support MS SQL Server 2014 and ASE 16.0) and relies on the pecularities of those databases much more than the according remote data access layer (*), and given the chance that an Azure database is just partially different from an on-premise MS SQL Server database (note: I don't know the differences), I could imagine that the MS SQL ML support could add some kind of option/switch to handle both...
@Michael: Is there a chance to add the missing system views as user views to make ML think it's connected as usual?
(*) - Compare Russ's statement here.
IMVHO, the change from v16's "ML to HANA" to v17's "SAP HANA remote data sync" is primarily a result of the HANA-centric SAP product marketing. I do not think that this is a clue for the further development of ML and different vendors...
Breck - Like Michael, I disagree with you rarely but I do about this: "SAP removed the MobiLink driver for HANA from SQL Anywhere 17 altogether, preferring to move (some of) the functionality over to HANA itself..."
Moving MobiLink into the HANA platform provides HANA users with common lifecycle management (install, upgrade etc), a standardised configuration (MobiLink user name and schema), and monitoring. So we think it's a step forward for HANA customers compared to running MobiLink the way it runs in the SQL Anywhere product (separately installed, configured, managed).
Once it is there in HANA Platform, keeping the MobiLink server connectivity for HANA in SQLA created a lot of questions about supported versions etc.
I am confused.
Are you saying SAP did not remove the MobiLink driver for HANA from SQL Anywhere 17?
Are you saying SAP did not prefer to move the functionality over to HANA?
Are you saying SAP will be supporting Azure?
That's great! ...SAP will be supporting Azure with its own MobiLink driver!
...that's what you're saying, right? :)
> I do not think that this is a clue for the further development of ML and different vendors...
So, you think "SAP HANA remote data sync" is going to work with Azure?
Seriously, "HANA-centric SAP product marketing" is itself huge clue that neither MobiLink nor any other SAP product line is going to bring support for Azure to market.
Maybe someone (Michael? Tom?) will tell me where I'm wrong... I know it's impolite to bring the subject up, but that's not the point.
I'm sure you do not think that I was saying or thinking that...)
I'm trying to make the point that "ML to HANA" is in a particular marketing situation where it seems fitting for SAP to put the ML support into the HANA system instead of leaving it at the SA side.
And I'm expecting that support for ML to other databases will develop as before, i.e. as part of the SA suite.
I do not make assumptions whether there will be a separate ML driver for Azure. But I could imagine that it would be technically feasible to enhance the MS SQL Server driver to support Azure, too, but as stated, I do not know the (subtle or not) differences between SQL Server and Azure Databases.
There have been no new non-SAP consolidated databases added to MobiLink since MySQL in SQL Anywhere 11, so tell me again how eager SAP is to support other people's software?
From the various Help files...
Breck, I do not claim that SAP has added new (non-SAP) consolidated databases to MobiLink in the last releases.
However, they seem to support newer versions (and newer ODBC drivers) of the already supported DBMSs, and that's what I was thinking of:
AFAIK, the MS SQL Server driver used with ML v17 is also able to connect to SQL Azure databases, too, and therefore Azure support may not mean a different consolidated database but just a flavour of an existing one.
Besides that, as I'm not using Azure, I leave further thoughts and comments to SAP:)