Specifying MS SQL Server Instance Names?

222 views
Skip to first unread message

bill shelton

unread,
Aug 11, 2009, 3:23:39 PM8/11/09
to Google Search Appliance/Google Mini - Google Search Appliance/Google Mini
Hi there,

Is there a way to specify an MS SQL Server instance name for database
crawling?

Typical syntax is SERVER\INSTANCE, but it appears that GSA doesn't
care for the backslash, or an escaped version ( SERVER\\INSTANCE ).

Any help would be appreciated.

thanks!
bill

bill shelton

unread,
Aug 17, 2009, 11:02:44 AM8/17/09
to Google Search Appliance/Google Mini - Google Search Appliance/Google Mini
Anyone? Google Enterprise support seems to be slow, as well.

thanks,
bill

Joe D'Andrea

unread,
Aug 17, 2009, 11:20:13 AM8/17/09
to Google-Search-...@googlegroups.com
> On Aug 11, 3:23 pm, bill shelton <vir...@gmail.com> wrote:

>> Is there a way to specify an MS SQL Server instance name for database
>> crawling?
>>
>> Typical syntax is SERVER\INSTANCE, but it appears that GSA doesn't
>> care for the backslash, or an escaped version ( SERVER\\INSTANCE ).

Correct. Per the documentation, the Source Name, Hostname, and
Database Name fields must not contain a backslash:

http://snurl.com/qdoxp (code.google.com, GSA 6.0 Help)
http://snurl.com/qdo72 (code.google.com, DB Crawling/Serving)

Are instances specific only to Microsoft's implementation of
databases? (Suspecting yes.) This might be an enhancement request in
the making.

--
Joe D'Andrea | Liquid Joe LLC
Google Enterprise Partner | iPhone Application Developer
www.liquidjoe.biz | skype:joedandrea | +1 (908) 781-0323

bill shelton

unread,
Aug 17, 2009, 4:32:53 PM8/17/09
to Google Search Appliance/Google Mini - Google Search Appliance/Google Mini
Thanks, Joe.

Yes, this is an MS specific convention. However, it should be an easy
enhancement to implement as the mircosoft jdbc driver used by the GSA
supports specifying instance names in the jdbc url. And all that would
need to be done is extract the instance name from the form field _if_
the selected db type is MS SQL Server.

jdbc:sqlserver://[serverName[\instanceName][:portNumber]]
[;property=value[;property=value]]

bill

On Aug 17, 11:20 am, "Joe D'Andrea" <jdand...@gmail.com> wrote:
> > On Aug 11, 3:23 pm, bill shelton <vir...@gmail.com> wrote:
> >> Is there a way to specify an MS SQL Server instance name for database
> >> crawling?
>
> >> Typical syntax is SERVER\INSTANCE, but it appears that GSA doesn't
> >> care for the backslash, or an escaped version ( SERVER\\INSTANCE ).
>
> Correct. Per the documentation, the Source Name, Hostname, and
> Database Name fields must not contain a backslash:
>
> http://snurl.com/qdoxp(code.google.com, GSA 6.0 Help)http://snurl.com/qdo72(code.google.com, DB Crawling/Serving)
>
> Are instances specific only to Microsoft's implementation of
> databases? (Suspecting yes.) This might be an enhancement request in
> the making.
>
> --
> Joe D'Andrea | Liquid Joe LLC
> Google Enterprise Partner | iPhone Application Developerwww.liquidjoe.biz| skype:joedandrea | +1 (908) 781-0323

Joe D'Andrea

unread,
Aug 17, 2009, 4:49:02 PM8/17/09
to Google-Search-...@googlegroups.com
On Mon, Aug 17, 2009 at 4:32 PM, bill shelton<vir...@gmail.com> wrote:

> Yes, this is an MS specific convention. However, it should be an easy
> enhancement to implement as the mircosoft jdbc driver used by the GSA
> supports specifying instance names in the jdbc url.

Ahh, For a moment I thought the GSA might be using an open-source
driver that sticks to common conventions, and that's why it went
missing. Otherwise, why suppress it, right?

bill shelton

unread,
Aug 18, 2009, 10:26:47 AM8/18/09
to Google Search Appliance/Google Mini - Google Search Appliance/Google Mini
>Otherwise, why suppress it, right?
Exactly. The admin console "should" simply pass the entire server
string as the JDBC serverName instead of saying it's a invalid. Again,
this should be a simple fix.

bill
> Google Enterprise Partner | iPhone Application Developerwww.liquidjoe.biz|skype:joedandrea | +1 (908) 781-0323

Joe D'Andrea

unread,
Aug 18, 2009, 5:06:32 PM8/18/09
to Google-Search-...@googlegroups.com
On Tue, Aug 18, 2009 at 10:26 AM, bill shelton<vir...@gmail.com> wrote:
>
>>Otherwise, why suppress it, right?
>
> Exactly. The admin console "should" simply pass the entire server
> string as the JDBC serverName instead of saying it's a invalid. Again,
> this should be a simple fix.

I can't speak to that. I've lost count how many times I thought a
"simple" fix was simple, when it was anything but. It all depends on
what's going on behind the scenes.

Hmm. Per http://support.microsoft.com/kb/313225 ... maybe there's an
instance-specific Port Number you can use as a workaround?

jdbc:microsoft:sqlserver://yourServerName:1433;user=yourUser;password=yourPwd

--
Joe D'Andrea | Liquid Joe LLC
Google Enterprise Partner | iPhone Application Developer

www.liquidjoe.biz | skype:joedandrea | +1 (908) 781-0323

bill shelton

unread,
Aug 19, 2009, 10:46:05 AM8/19/09
to Google Search Appliance/Google Mini - Google Search Appliance/Google Mini
Thanks again, Joe. Unfortunately, I believe that solution only works
for installations of SQL 2005/2008 that have "default" instances
specified during installation. We do not have any default instance,
so, we need to specify the instance name in the JDBC connection
string.

I have communicated with enterprise support and it appears that there
is no documented workaround. The good news is that there is an
existing feature request for this and I hope it gets elevated. We use
a number of other Java based enterprise products that do not have this
restriction on named instances. As a matter of fact, GSA is the "only"
Java-based product we use that poses this constraint.

In the meantime,y I will likely have to have build some type of
prox ... a separate SQL Server install whose only purpose in life is
to accept requests from GSA and communicate with the main SQL Server
cluster. This is certainly not a pretty solution, but if there is no
way we can (1) change the JDBC connection string from the GSA to SQL,
and (2) cannot map a named instance to specific TCP/IP port, then I
can't think of another solution today. But, I would be more than happy
to listen to any recommendations :-)

thanks,
bill

On Aug 18, 5:06 pm, "Joe D'Andrea" <jdand...@gmail.com> wrote:
> On Tue, Aug 18, 2009 at 10:26 AM, bill shelton<vir...@gmail.com> wrote:
>
> >>Otherwise, why suppress it, right?
>
> > Exactly. The admin console "should" simply pass the entire server
> > string as the JDBC serverName instead of saying it's a invalid. Again,
> > this should be a simple fix.
>
> I can't speak to that. I've lost count how many times I thought a
> "simple" fix was simple, when it was anything but. It all depends on
> what's going on behind the scenes.
>
> Hmm. Perhttp://support.microsoft.com/kb/313225... maybe there's an
> instance-specific Port Number you can use as a workaround?
>
>   jdbc:microsoft:sqlserver://yourServerName:1433;user=yourUser;password=yourPwd
>
> --
> Joe D'Andrea | Liquid Joe LLC
> Google Enterprise Partner | iPhone Application Developerwww.liquidjoe.biz| skype:joedandrea | +1 (908) 781-0323

Joe D'Andrea

unread,
Aug 19, 2009, 12:48:20 PM8/19/09
to Google-Search-...@googlegroups.com
On Wed, Aug 19, 2009 at 10:46 AM, bill shelton<vir...@gmail.com> wrote:

> Unfortunately, I believe that solution only works
> for installations of SQL 2005/2008 that have "default" instances
> specified during installation.

... and your installation doesn't fall into that category, hence it
won't work for you. Sigh.

> In the meantime, I will likely have to have build some type of


> prox ... a separate SQL Server install whose only purpose in life is
> to accept requests from GSA and communicate with the main SQL Server
> cluster.

Sounds like a plan. Glad to hear there's a feature request in queue though!

- Joe

bill shelton

unread,
Aug 20, 2009, 4:25:00 PM8/20/09
to Google Search Appliance/Google Mini - Google Search Appliance/Google Mini
Just posting a workaround for others who may encounter this. I was
able to get Google to index SQL Server 2008 content that exists on a
named instance by establishing a linked server in SQL 2000 that points
to the SQL 2008 instance. Note that we had a SQL 2000 install
available, else I would have used a new install with a default
instance.

SQL 2000 Config:
Server Name: OUR_SQL2000_SERVER
Linked Server Name(alias): google
Points to (remote target): OUR_SQL2008_SERVER\INSTANCE_NAME
User: foo
Schema: OUR_DATABASE

GSA (Version 6) Configuration :
hostname: OUR_SQL2000_SERVER
Port: 1649
Database Name (Blank!):
Username: foo
Password: *******
Crawl Query: SELECT * FROM [google].[OUR_DATABASE].[dbo].[OUR_VIEW]

Note that the Database Name is intentionally left blank because the
user will be logged into the default database when successfully
connected.

bill

Joe D'Andrea

unread,
Aug 20, 2009, 4:37:35 PM8/20/09
to Google-Search-...@googlegroups.com
On Thu, Aug 20, 2009 at 4:25 PM, bill shelton <vir...@gmail.com> wrote:

> Just posting a workaround for others who may encounter this. I was
> able to get Google to index SQL Server 2008 content that exists on a
> named instance by establishing a linked server in SQL 2000 that points
> to the SQL 2008 instance.

Congrats! Thanks very much for sharing the workaround.

--
Joe D'Andrea | Liquid Joe LLC
Google Enterprise Partner | iPhone Application Developer

www.liquidjoe.biz | skype:joedandrea | +1 (908) 781-0323

Reply all
Reply to author
Forward
0 new messages