question

ZamanBakshi-4891 avatar image
0 Votes"
ZamanBakshi-4891 asked SaurabhSharma-msft answered

Split-merge tool error. MSDN resolution does not help

Hi,

We would want to move shardlets from one database to another and would like to use split-merge tool. We were able to successfully deploy the split-merge tool using cloud service (classic) as mentioned here: https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-scale-configure-deploy-split-and-merge

We are facing the following issue: [Exception] System.Data.SqlClient.SqlException (0x80131904): Could not find stored procedure 'dbo.InsertRequest'.

And the resolution you have provided in the same MSDN web page "In this case, check your configuration file, in particular the setting for WorkerRoleSynchronizationStorageAccountConnectionString. This error typically indicates that the worker role could not successfully initialize the metadata database on first use." does not work. I literally copy and paste the storage account connection string from Azure portal, so the connection string is not a problem.

Moreover, I see that the split-merge tool does not create any such stored procedure on start, nor can I find this stored procedure in the elastic scale library source code.

124242-msdn1.png124243-msdn2.png124215-msdn3.png

Can you please help?
At least can you please list the sequence of elastic scale client library method calls that we need to move a shardlet from one database to another.


azure-sql-database
msdn1.png (45.6 KiB)
msdn2.png (125.7 KiB)
msdn3.png (119.3 KiB)
· 15
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

HI Saurabh,
Thanks for reply.
I do not see any such stored procedure.
Also I found out that the tool is using a deprecated version for storage library to get the blob (for locking). I tried writing a simple console application with the same code and it fails. I am interested to know how are you able to run this?

The error I get is that the tool is unable to create a blob because the library (SDK) is sending a BAD REQUEST to the Azure Storage API.

Can you please tell me the format of storage account connection string you are using?124565-capture123.png


0 Votes 0 ·
capture123.png (45.6 KiB)

@SaurabhSharma-msft are you using storage emulator to test this?

The sharding database environment was created using the powershell scripts that are provided as part of the shrading library .

0 Votes 0 ·

IIn addition, the source code of the elastic scale client library has no mention of the stored procedure. I have looked in code files and resource files.

0 Votes 0 ·

Hi @zamanbakshi-4891,
Thanks for sharing details. I already had the shard databases available which I have created using the Elastic Database Tools for .NET. I have not tried using the PowerShell scripts for Sharding environment preparation but I will try to check if it works or not.

Thanks
Saurabh

0 Votes 0 ·

Hi @zamanbakshi-4891,
Thanks for sharing details. I already had the shard databases available which I have created using the Elastic Database Tools for .NET. I have not tried using the PowerShell scripts for Sharding environment preparation but I will try to check if it works or not.

Thanks
Saurabh

0 Votes 0 ·

HI Saurabh,
It still does not work using the ElasticScaleStarterKit. I get the same error.
Just to check I also created "classic" storage account. But it was of no help.
Are you using storage emulator to test by any chance instead of actual storage account on Azure?

I hope Microsoft releases the source code for this tool so that we can rebuild it.
125003-samplekitrun.png
125021-capture345.png
125031-capture3456.png


0 Votes 0 ·
samplekitrun.png (39.8 KiB)
capture345.png (434.5 KiB)
capture3456.png (55.9 KiB)
Show more comments
ZamanBakshi-4891 avatar image
1 Vote"
ZamanBakshi-4891 answered

Hi Saurabh,
Thanks. The resolution given to change the TLS version to 1.0 works and worker role is able to create the necessary stored procedures.
Will I be able to deploy this tool as cloud service (extended support) instead of cloud service (classic) which is going to be deprecated in Aug 2024?
Br,
Zaman

· 1
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Hi @zamanbakshi-4891,

Great. Thanks for sharing the resolution over here.

Thanks
Saurabh

0 Votes 0 ·
SaurabhSharma-msft avatar image
0 Votes"
SaurabhSharma-msft answered

Hi @zamanbakshi-4891,

Thanks for using Microsoft Q&A !!
You can find [dbo].[InsertRequest] stored procedure in your Elastic Scale Metadata database which you have configured in the ServiceConfiguration.cscfg file under <Setting name="ElasticScaleMetadata" settings. (Please find below the screenshot)

ServiceConfiguration.cscfg
124427-image.png

Config Database
124359-image.png

Can you please check if your metadata database has the stored procedure created ?

I have tested in my environment using the steps mentioned in the document and I could see Shardlet Move has completed successfully for me.
124417-image.png

Thanks
Saurabh



image.png (30.5 KiB)
image.png (38.7 KiB)
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.