none
Can service broker work between SQL Server 2008 and 2012, ssbdiagnose returned an error !

    Question

  • Hello, 

    We have a setup of three applications that sends and receive messages using Service Broker.
    One part is on a server, we'll call 'S' have Microsoft SQL Server 2008 (SP3) - 10.0.5512.0 (X64)

    The other part, we'll call 'E' use to have Microsoft SQL Server 2008 (SP3) - 10.0.5512.0 (X64).
    But I am migrating these apps to a new server, we'll call 'C' that has: Microsoft SQL Server 2012 (SP1) - 11.0.3339.0 (X64)

    I have used this command line tool to test it :
    ssbdiagnose -E CONFIGURATION FROM SERVICE "//E/S/CService" -S "ServerC" -d EDatabase TO SERVICE "//S/S/ECService" -S ServerS -d SDatabase ON CONTRACT //E/S/ECContact

    It returned: 
    An internal exception occurred: Cannot read property ServiceBrokerGuid.
    This property is not available on SQL Server 7.0.

    So, I am wondering, is it supposed to work between these two versions ?

    As more info, in the previous setup, it was using certificates but I have changed the Endpoints to use only Windows Authentication.

    Thanks for any advice.
    Claude

    Friday, June 13, 2014 4:07 PM

All replies

  • Hello,

    I am trying to involve someone more familiar with this topic for a further look at this issue. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated.
    Thank you for your understanding and support.

    Regards,
    Fanny Liu

    If you have any feedback on our support, please click here. 


    Fanny Liu
    TechNet Community Support

    Monday, June 16, 2014 9:11 AM
  • Hello Claude,

    I'm an SQL Server engineer from Microsoft. I'm glad to help you on this issue.

    As mentioned in the ssbdiagnose grammar (http://msdn.microsoft.com/en-us/library/bb934450(v=sql.110).aspx):

    -S               server_name[\instance_name]          

    Specifies the instance of the Database Engine that holds the Service Broker services to be analyzed.

    -d               database_name                       

    Specifies the database that holds the Service Broker services to be analyzed.

    Therefore, the database after the "-d" option should reside on the server after the "-S" option.

    In above post, you are using "-S "ServerC" -d EDatabase". It seems the database is not on the ServerC.

    If I don't understand your question correctly, please correct me.

    Tuesday, June 17, 2014 7:19 AM
  • Hello, 

    Many thanks to you and Fanny for looking at my question.

    In fact I was unclear, please let me provide you with more details.

    Maybe the use of "always on" plays a role here...  I will use different names so it might be clearer...

    ServerSoftware2008 server has SoftwareDB database.

    ServerEmployees2008 server has EmployeesDB database.

    Service broker use to work fine between those two above, with certificates.

    The new server comes in, two virtual servers with SQL Server 2012 Enterprise Edition with Always On.

    I call it ServerEmployeesC but this is the listener.  Behind, there is ServerEmployees2012_A and ServerEmployees2012_B and of course, both have a EmployeesDB database.

    So, to use SSBDiagnose, I wonder if I need to use quotes around values and if I can use the listener name with FQDN.  Concerning the use of instance name in the syntax, there is only one instance per server, is it best practice to use it on the command line ?

    Here is again, my command :

    ssbdiagnose -E CONFIGURATION FROM SERVICE "//E/S/E" -S "ServerEmployeesC.sub.acme.com" -d EmployeesDB TO SERVICE "//S/S/E" -S "ServerSoftware2008.sub.acme.com" -d SoftwareDB ON CONTRACT //E/S/E

    Again, many thanks for any help you will be able to provide, the people who configured this application at first are no longer here and I am trying to configure the new server in a task of migrating to SQL Server 2012 for one of the two servers involved and I am having a lot of problems doing it.

    Best regards,

    Claude


    Tuesday, June 17, 2014 2:02 PM
  • Hello Claude,

    For your two questions:

    "I wonder if I need to use quotes around values "

      You do not need to quote those values.

    "if I can use the listener name with FQDN."

      Yes, you can use FQDN.

    Please also ensure your database used is in your AG.

    I did some research for your original error.

    "An internal exception occurred: Cannot read property ServiceBrokerGuid.
    This property is not available on SQL Server 7.0." 
    This error is likely to be related to the SMO libarary forward compatibility. The link below is for reference and this is NOT a Microsoft document.

    http://programmingmuscles.blogspot.com/2012/09/this-property-is-not-available-on-sql.html

    When you want to use ssbdiagnose, I suggest you run it between SQL of the same version.

    From a support perspective If you cannot determine your answer here or on
    your own, consider opening a support case with us. Visit this link to see the
    various support options that are available to better meet your needs:  http://support.microsoft.com/default.aspx?id=fh;en-us;offerprophone



    Wednesday, June 18, 2014 2:17 AM