Testing BizTalk SAP Installation - sap

I am installing a new BizTalk Server 2016 to an existent BizTalk cluster.
I have installed all the software, but prior to configure the BizTalk Server I want to test if the SAP Software is installed correctly, because we have several problems in the past.
How I can develop a single piece of .NET code, to test that the SAP connector is installed correctly?
Obviously we can test after configure the BizTalk Server and add this server to the BizTalk cluster, but we want to check before.
We are using RFC SDK 7.20 and ClassicRfc connection.

Obvisously, replace the parameters in "<...>" below with your actual server information.
using Microsoft.Data.SAPClient;
using (SAPConnection conn = new SAPConnection("TYPE = A; ASHOST=<server>; SYSNR=<sysnum>; LANG=EN; CLIENT=<client>; USER=<user>; PASSWD=<password>"))
{
conn.Open();
SAPCommand cmd = conn.CreateCommand();
cmd.CommandText = "exec RFC_PING";
cmd.ExecuteNonQuery();
}

SAP will know if its port is connected to biztalk. So just create the Receive Port to SAP in biztalk to test the connection.Make sure IDOCs are not released.

Related

Is it possible to Install only SQL Server database engine without installing SQL Server Management Studio?

I have a Windows application which uses a database on the server. My connection string is something like:
con = new SqlConnection("Server=10.100.10.100;Initial Catalog=MyDB; Integrated Security = true");
Is there any way I can only install only the SQL Server database engine or any such which should communicate to database on the server, but SQL Server Management Studio should not be installed on the client's machine as data should not be accessible or shown to the end user.
how about installing only SQLEXPR_x64_ENU which is available on miscrosoft website, sizes around 135 mb. Would that help me with connecting my app to database without studio?
Thanks in advance.

Requirements to run SQL Server on other computers

Suppose that I've created a project using MS SQL Server.
Now if somebody asks me to run my application on their brand new PC, should I install the entire SQL Server management studio on their computer? Or are there any other choices?
Please note that I just want to run my app (.exe template) not to debug it or anything else.
If your application is intended for standalone use on a PC, you can include the redistributable version of SQL Server Express in your installer. It's a limited but functional version of SQL server intended to be included with application programs like yours free of charge.
https://www.microsoft.com/en-us/sql-server/sql-server-editions-express
If your application program is designed for either shared or standalone use, and you have time to polish up your installer, you can ask your users whether they want to use a shared SQL Server instance. That will let you skip the installation of SQL Server Express when it's not necessary.
No they don't need SQL server or management studio , however they a database driver to access the server. ADO, ODBC and JDBC are the types of drivers you would look at. This depends on the language you wrote your application in and the connection string.
You clients would use the server's address and connect to it using the driver which is specified in a connection string. See the examples below:
.Net Framework Data Provider For SQL Server:
Server=myServerAddress;Database=myDataBase;User Id=myUsername;
Password=myPassword;
SQL Server Native Client 11.0 OLE DB Provider:
Provider=SQLNCLI11;Server=myServerAddress;Database=myDataBase;Uid=myUsername;
Pwd=myPassword;
If you application only connect to the database that you have a two-tier client server architecture. For the server to be reachable it needs to be on a network or network endpoint that the clients(people running your software) can see. The server needs to be on as well(your comments).

SQL2008 to SQL2014 authentication issues

We recently migrated an application database to a new version from winserv2008/sql2008 to winserv2012R2/Sql2014. A service that pulls on this DB needs to be redesigned to accommodate some minor table/view definition changes.
Running the service code through tests under my personal security context works fine. However, installing and starting the service under .\LocalSystem is problematic. Looking at the service logs in event viewer I see that the service tries to connect to the sql server but gets a ERROR[28000] Login failed for user 'Domain\LocalSystemName$'.
The connection is via ODBC, SQL Server Native Client 11.0. Connection string is like:
"dsn=dsn_name;Driver={SQL Server Native Client 11.0};Database=database_name;Integrated Security=False;uid=accountname;pwd=accountpassword;Connect Timeout=15;ApplicationIntent=ReadOnly;"
Also, through the course of troubleshooting I've discovered/confirmed several things.
The sql server credentials I am using are correct, they are also being used to connect from a SQL2016 instance to the SQL14 server as a linked server.
The original service install on a utility server appears to be hitting the new database fine after the ODBC connection settings were switched.
My questions are:
Have you run into anything like this before?
Am I missing something simple in my connection string?
Are there per machine security settings in sql14 that I'm missing?

What's the difference between Data Source and Server in connection string? And why the 1st doesn't work and 2nd does?

My colleague and I hit one tricky problem in C#, that when accessing the local SQL Server 2012, the code works fine using "server" in the connection string, while the connection will fail and timeout when we use "Data Source". Below is the sample code:
server:
SqlConnection sc =
new SqlConnection( #"user id=sa;password=blabla;server=(local)\sql2012;database=Dummy.Database;connection timeout=30" );
data source version:
SqlConnection sc =
new SqlConnection( #"Data Source=(local)\sql2012;Initial Catalog=Dummy.Database;User=sa;Password=blabla;MultiSubnetFailover=true" );
Then the 1st will pass when calling
sc.Open( );
while the 2nd cannot. What could be the root cause of the difference?
I'm using Win7 x64 with VS2013 Premium. Great thanks.
By the way, using the exact same settings, and the data source version still fails.
SqlConnection sc = new SqlConnection( #"User=sa;Password=blabla;Data Source=(local)\sql2012;Initial Catalog=Dummy.Database;connection timeout=30" );
Just checked the Configuration manager, and named pipe/TCP IP/shared memory are all enabled. Firewall is on, but since I'm using localhost, the packets are looped back without touching the physical network, so should be fine?
Besides, I'm using
Microsoft SQL Server 2012 - 11.0.2100.60 (X64)
Feb 10 2012 19:39:15
Developer Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)

How to connect to Oracle 10g server from client machines

I have installed Oracle 10g in one of my office's computer. I want to keep this as database server. I am developing a .net project which will communicate with the database server from client machine and from the server machine. I success to communicate with oracle from server machine but not from client machine using the .net project. The connection code is as follows:
Public OraConn As ADODB.Connection
OraConn = New ADODB.Connection
OraConn.Provider = "OraOLEDB.Oracle"
OraConn.ConnectionString = "Data Source=<my_database_name>;User ID=<my_user>;Password=<my_pass>;"
OraConn.Open()
Please tell me step by step procedures how can I connect to my server database from my .net client program resides on client machine ?
Thanks in Advance.
My first thought is to try and ping the port of the db in your server (if you are using windows you can use "telnet ", see that you aren't blocked by any firewall rules in you server.
my second one is "Data Source="
if all fails, try reading this:
http://www.oracle.com/technology/pub/articles/cook_dotnet.html