<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OpenText Analytics Database 26.2.x – Connecting to the database</title>
    <link>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/</link>
    <description>Recent content in Connecting to the database on OpenText Analytics Database 26.2.x</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/en/connecting-to/client-libraries/accessing/c/connecting-to-db/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Connecting-To: Configuring TLS for ADO.NET</title>
      <link>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/installing-tls-certificates/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/installing-tls-certificates/</guid>
      <description>
        
        
        &lt;p&gt;You can optionally use TLS to secure communication between your ADO.NET application and OpenText™ Analytics Database.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before you configure ADO.NET for TLS, you must &lt;a href=&#34;../../../../../../en/security-and-authentication/tls-protocol/tls-overview/configuring-client-server-tls/&#34;&gt;configure client-server TLS&lt;/a&gt;, setting the TLSMODE to &lt;code&gt;ENABLE&lt;/code&gt;. Mutual mode (&lt;code&gt;TRY_VERIFY&lt;/code&gt; or higher) is not supported for ADO.NET.&lt;/p&gt;
&lt;h2 id=&#34;linux&#34;&gt;Linux&lt;/h2&gt;
&lt;p&gt;The following procedure configures TLS on a Linux system:&lt;/p&gt;

&lt;div class=&#34;alert admonition note&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Note&lt;/h4&gt;

The paths for these certificates might vary between distributions.

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;On the client filesystem, create the file &lt;code&gt;/etc/ssl/certs/server.crt&lt;/code&gt; with the certificate text of the server certificate. You can retrieve the certificate text from a certificate in the database by querying the &lt;a href=&#34;../../../../../../en/sql-reference/system-tables/v-catalog-schema/certificates/#&#34;&gt;CERTIFICATES&lt;/a&gt; system table.&lt;/li&gt;
&lt;li&gt;Run the following command to verify that the certificate file is valid. If it is valid, the command outputs information about the certificate:
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ openssl x509 -in /etc/ssl/certs/server.crt -text -noout
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Certificate:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Data:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Version: &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;0x2&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Serial Number:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        65:e7:fe:f9:0e:60:8a:79:ff:97:e2:c2:e4:e8:57:09:bd:f3:34:20
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Signature Algorithm: sha256WithRSAEncryption
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Issuer: &lt;span class=&#34;nv&#34;&gt;C&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; US, &lt;span class=&#34;nv&#34;&gt;ST&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; Massachusetts, &lt;span class=&#34;nv&#34;&gt;L&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; Burlington, &lt;span class=&#34;nv&#34;&gt;O&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; OpenText, &lt;span class=&#34;nv&#34;&gt;OU&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; Vertica, &lt;span class=&#34;nv&#34;&gt;CN&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; Vertica Root CA
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Validity
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Not Before: Aug  &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; 18:11:44 &lt;span class=&#34;m&#34;&gt;2023&lt;/span&gt; GMT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Not After : Aug &lt;span class=&#34;m&#34;&gt;12&lt;/span&gt; 18:11:44 &lt;span class=&#34;m&#34;&gt;2024&lt;/span&gt; GMT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Subject: &lt;span class=&#34;nv&#34;&gt;C&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; US, &lt;span class=&#34;nv&#34;&gt;ST&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; Massachusetts, &lt;span class=&#34;nv&#34;&gt;L&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; Burlington, &lt;span class=&#34;nv&#34;&gt;O&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; OpenText, &lt;span class=&#34;nv&#34;&gt;OU&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; Vertica, &lt;span class=&#34;nv&#34;&gt;CN&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; *.example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Subject Public Key Info:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Public Key Algorithm: rsaEncryption
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            RSA Public-Key: &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2048&lt;/span&gt; bit&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Modulus:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                00:9a:3a:83:5b:e7:73:c2:a4:15:c7:0a:81:a0:02:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                f3:a6:6c:bb:aa:fb:fc:c8:9a:db:b9:41:21:2d:ca:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                d9:07:1a:b1:07:35:39:0b:f3:62:08:1c:31:49:d4:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                e2:b3:21:a8:84:eb:f4:43:5f:92:9e:c3:34:3d:4b:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                4b:ab:ad:75:05:3c:c4:82:b5:21:45:a3:a5:c2:5c:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                1d:c9:e3:d2:93:c1:40:b4:f6:07:f7:6c:47:68:9f:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                9b:5d:41:4b:85:83:e0:f2:56:36:67:ee:ac:1e:08:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                8c:6c:3a:af:b8:20:84:1d:7e:bb:d2:5e:45:d0:a8:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                6d:ca:d8:46:5a:83:e6:d0:8d:00:fc:c1:bf:ce:d7:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                95:4c:1d:ed:3a:45:82:d5:4d:1b:2c:d6:c4:17:5c:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                aa:78:bc:e3:c2:2b:06:70:c3:1a:42:57:3e:19:5f:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                7c:2f:0c:f2:d5:09:6a:ad:04:cd:95:33:92:20:56:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                41:86:62:b2:fb:a5:d1:c5:65:cd:be:f9:31:6c:45:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                79:a5:7f:10:7d:07:1d:26:eb:f3:18:42:14:3b:37:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                84:81:f4:4f:c0:8d:93:b2:57:da:4f:64:53:b8:cc:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                ed:ce:a7:c5:cc:af:5b:d1:4a:3f:fc:32:5a:f3:84:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                89:cb:19:52:43:22:5c:9d:54:88:6b:41:3a:39:00:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                86:bd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Exponent: &lt;span class=&#34;m&#34;&gt;65537&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;0x10001&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    X509v3 extensions:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        X509v3 Basic Constraints:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            CA:FALSE
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        X509v3 Extended Key Usage:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            TLS Web Server Authentication
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        X509v3 Key Usage: critical
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Digital Signature, Key Encipherment
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        X509v3 Subject Key Identifier:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        X509v3 Authority Key Identifier:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            keyid:DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            DirName:/C&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;US/ST&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;Massachusetts/L&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;Burlington/O&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;OpenText/OU&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;Vertica/CN&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;Vertica Root CA
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            serial:4C:92:49:E5:98:94:C3:9C:B9:3E:DE:30:39:ED:52:23:E6:A8:7E:D8
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Signature Algorithm: sha256WithRSAEncryption
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     a7:f5:35:12:ef:f2:8e:7e:85:45:6a:a0:7a:64:7b:d7:82:62:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     fc:2b:b4:76:1c:5b:3e:73:f8:cb:a7:8a:07:e7:1a:f3:fc:bc:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     45:58:b0:3c:13:6f:29:fa:7b:1a:cc:7b:c7:79:bc:54:62:5c:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     3f:44:ae:7e:af:68:6d:bc:3a:38:93:3f:a6:c9:42:70:68:c3:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     39:fc:a4:1a:2f:d5:d6:5d:0f:e4:06:cb:53:61:a7:b3:44:a5:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     85:74:76:f7:b7:65:1b:74:bf:58:63:40:60:82:59:01:b7:0f:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     a4:8c:58:44:7e:41:c9:63:a2:da:92:64:0e:a0:a5:f7:ad:49:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     40:f9:e3:e4:21:f2:d3:9c:c9:06:03:d6:5d:61:ef:ef:31:49:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     e0:66:79:08:97:0e:20:ec:2f:03:6c:a1:6e:9e:3c:24:5d:da:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     cc:20:ec:29:10:92:28:b2:3d:af:fb:3a:46:7d:ca:e5:bb:48:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     57:93:ef:27:a4:4d:00:2d:6d:7c:3c:6b:55:83:af:11:ef:c3:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     2f:d2:16:09:f0:4e:45:64:8d:50:93:da:ab:07:33:fb:2b:6c:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     d2:12:16:f9:a7:3d:de:e7:b9:62:0c:c3:37:bc:51:24:e7:aa:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     64:6d:19:15:7e:f5:f0:31:e6:5c:14:56:3b:6f:f0:6b:e0:35:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     68:b1:fa:27
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;On the client filesystem, create the file &lt;code&gt;/usr/local/share/ca-certificates/root.crt&lt;/code&gt; with the certificate text of the CA certificate.&lt;/li&gt;
&lt;li&gt;Verify that the certificate was issued by the CA certificate:
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ openssl verify -CAfile /usr/local/share/ca-certificates/root.crt /etc/ssl/certs/server.crt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;server.crt: OK
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Update the certificate store:
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ update-ca-certificates
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;windows&#34;&gt;Windows&lt;/h2&gt;
&lt;p&gt;The database ADO.NET driver uses the TLS certificates in the default Windows key store.&lt;/p&gt;
&lt;p&gt;To use TLS for ADO.NET connections to the database:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Import the server certificate into the Windows key store:
&lt;ol&gt;
&lt;li&gt;Create a file &lt;code&gt;server.crt&lt;/code&gt; with the certificate text of the server certificate.&lt;/li&gt;
&lt;li&gt;Double-click &lt;code&gt;server.crt&lt;/code&gt; certificate file.&lt;/li&gt;
&lt;li&gt;Let Windows determine the key type and select &lt;strong&gt;Install&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Import the CA certificate into the Windows key store:
&lt;ol&gt;
&lt;li&gt;Create a file &lt;code&gt;root.crt&lt;/code&gt; with the certificate text of the CA certificate.&lt;/li&gt;
&lt;li&gt;Double-click &lt;code&gt;root.crt&lt;/code&gt; certificate file.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Place all certificates in the following store&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Browse&lt;/strong&gt;,  &lt;strong&gt;Trusted Root Certification Authorities&lt;/strong&gt;, and &lt;strong&gt;Next&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Install&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;enable-ssl-in-your-adonet-applications&#34;&gt;Enable SSL in your ADO.NET applications&lt;/h2&gt;
&lt;p&gt;In your connection string, enable SSL by setting the &lt;code&gt;SSL&lt;/code&gt; property in &lt;code&gt;VerticaConnectionStringBuilder&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;, for example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;//configure connection properties
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VerticaConnectionStringBuilder&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VerticaConnectionStringBuilder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Host&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;192.168.17.10&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Database&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;VMart&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;User&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;dbadmin&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSL&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;//open the connection
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VerticaConnection&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_conn&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VerticaConnection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;builder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ToString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;_conn&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Connecting-To: Opening and closing the database connection (ADO.NET)</title>
      <link>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/opening-and-closing-db-connection-ado-net/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/opening-and-closing-db-connection-ado-net/</guid>
      <description>
        
        
        &lt;p&gt;Before you can access data in OpenText™ Analytics Database through ADO.NET, you must create a connection to the database using the VerticaConnection class which is an implementation of System.Data.DbConnection. The VerticaConnection class takes a single argument that contains the connection properties as a string. You can manually create a string of property keywords to use as the argument, or you can use the VerticaConnectionStringBuilder class to build a connection string for you.&lt;/p&gt;
&lt;p&gt;To download the ADO.NET driver, go to the &lt;a href=&#34;https://vertica.com/download/vertica/client-drivers/&#34;&gt;Client Drivers Downloads page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This topic details the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Manually building a connection string and connecting to the database&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using VerticaConnectionStringBuilder to create the connection string and connecting to the database&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Closing the connection&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;to-manually-create-a-connection-string&#34;&gt;To manually create a connection string:&lt;/h2&gt;
&lt;p&gt;See &lt;a href=&#34;../../../../../../en/connecting-to/client-libraries/accessing/c/connecting-to-db/ado-net-connection-properties/#&#34;&gt;ADO.NET connection properties&lt;/a&gt; for a list of available properties to use in your connection string. At a minimum, you need to specify the Host, Database, and User.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;For each property, provide a value and append the properties and values one after the other, separated by a semicolon. Assign this string to a variable. For example:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;String connectString = &amp;#34;DATABASE=VMart;HOST=v_vmart_node0001;USER=dbadmin&amp;#34;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Build a database connection object that specifies your connection string.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;VerticaConnection _conn = new VerticaConnection(connectString)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the connection.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;_conn.Open();
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a command object and associate it with a connection. All VerticaCommand objects must be associated with a connection.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;VerticaCommand command = _conn.CreateCommand();
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;to-use-the-verticaconnectionstringbuilder-class-to-create-a-connection-string-and-open-a-connection&#34;&gt;To use the VerticaConnectionStringBuilder class to create a connection string and open a connection:&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new object of the VerticaConnectionStringBuilder class.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;VerticaConnectionStringBuilder builder = new VerticaConnectionStringBuilder();
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update your VerticaConnectionStringBuilder object with property values. See &lt;a href=&#34;../../../../../../en/connecting-to/client-libraries/accessing/c/connecting-to-db/ado-net-connection-properties/#&#34;&gt;ADO.NET connection properties&lt;/a&gt; for a list of available properties to use in your connection string. At a minimum, you need to specify the Host, Database, and User.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;builder.Host = &amp;#34;v_vmart_node0001&amp;#34;;
builder.Database = &amp;#34;VMart&amp;#34;;
builder.User = &amp;#34;dbadmin&amp;#34;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Build a database connection object that specifies your connection VerticaConnectionStringBuilder object as a string.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;VerticaConnection _conn = new VerticaConnection(builder.ToString());
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the connection.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;_conn.Open();
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a command object and associate it with a connection. All VerticaCommand objects must be associated with a connection.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;VerticaCommand command = _conn.CreateCommand;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class=&#34;alert admonition note&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Note&lt;/h4&gt;

If your database is not in compliance with your database license, the call to &lt;code&gt;VerticaConnection.open()&lt;/code&gt; returns a warning message to the console and the log. See &lt;a href=&#34;../../../../../../en/admin/managing-licenses/#&#34;&gt;Managing licenses&lt;/a&gt; for more information.

&lt;/div&gt;
&lt;h2 id=&#34;to-close-the-connection&#34;&gt;To close the connection:&lt;/h2&gt;
&lt;p&gt;When you&#39;re finished with the database, close the connection. Failure to close the connection can deteriorate the performance and scalability of your application. It can also prevent other clients from obtaining locks.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; _conn.Close();
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;example-usage&#34;&gt;Example usage:&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Vertica.Data.VerticaClient;
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            VerticaConnectionStringBuilder builder = new VerticaConnectionStringBuilder();
            builder.Host = &amp;#34;192.168.1.10&amp;#34;;
            builder.Database = &amp;#34;VMart&amp;#34;;
            builder.User = &amp;#34;dbadmin&amp;#34;;
            VerticaConnection _conn = new VerticaConnection(builder.ToString());
            _conn.Open();
        //Perform some operations
            _conn.Close();
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
      </description>
    </item>
    
    <item>
      <title>Connecting-To: ADO.NET connection properties</title>
      <link>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/ado-net-connection-properties/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/ado-net-connection-properties/</guid>
      <description>
        
        
        &lt;p&gt;
To download the ADO.NET driver, go to the &lt;a href=&#34;https://vertica.com/download/vertica/client-drivers/&#34;&gt;Client Drivers Downloads page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You use connection properties to configure the connection between your ADO.NET client application and your OpenText™ Analytics Database. The properties provide the basic information about the connections, such as the server name and port number, needed to connect to your database.&lt;/p&gt;
&lt;p&gt;You can set a connection property in two ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Include the property name and value as part of the connection string you pass to a &lt;code&gt;VerticaConnection&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set the properties in a &lt;code&gt;VerticaConnectionStringBuilder&lt;/code&gt; object, and then pass the object as a string to a &lt;code&gt;VerticaConnection&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;general-connection-properties&#34;&gt;General connection properties&lt;/h2&gt;
&lt;p&gt;
&lt;table class=&#34;table table-bordered&#34; &gt;



&lt;tr&gt; 

&lt;th &gt;
Property&lt;/th&gt; 

&lt;th &gt;
Description&lt;/th&gt; 

&lt;th &gt;
Default Value&lt;/th&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Database&lt;/td&gt; 

&lt;td &gt;


Name of the OpenText™ Analytics Database to which you want to connect. For example, if you installed the example VMart database, the database is &amp;quot;VMart&amp;quot;.&lt;/td&gt; 

&lt;td &gt;


none&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
User&lt;/td&gt; 

&lt;td &gt;


Name of the user to log into the dabase.&lt;/td&gt; 

&lt;td &gt;


none&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Port&lt;/td&gt; 

&lt;td &gt;


Port on which the database is running.&lt;/td&gt; 

&lt;td &gt;


5433&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Host&lt;/td&gt; 

&lt;td &gt;






&lt;p&gt;The host name or IP address of the server on which the database is running.&lt;/p&gt;
&lt;p&gt;You can provide an IPv4 address, IPv6 address, or host name.&lt;/p&gt;
&lt;p&gt;In mixed IPv4/IPv6 networks, the DNS server configuration determines which IP version address is sent first. Use the &lt;code&gt;PreferredAddressFamily&lt;/code&gt; option to force the connection to use either IPv4 or IPv6.&lt;/p&gt;
&lt;/td&gt; 

&lt;td &gt;


none&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
PreferredAddressFamily&lt;/td&gt; 

&lt;td &gt;














&lt;p&gt;The IP version to use if the client and server have both IPv4 and IPv6 addresses and you have provided a host name. Valid values are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Ipv4—Connect to the server using IPv4.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ipv6—Connect to the server using IPv6.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;None—Use the IP address provided by the DNS server.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt; 

&lt;td &gt;
Vertica.Data.VerticaClient.AddressFamilyPreference.None&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Password&lt;/td&gt; 

&lt;td &gt;


The password associated with the user connecting to the server.&lt;/td&gt; 

&lt;td &gt;


string.Empty&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
BinaryTransfer&lt;/td&gt; 

&lt;td &gt;


















&lt;p&gt;Provides a Boolean value that, when set to true, uses binary transfer instead of text transfer. When set to false, the ADO.NET connection uses text transfer. Binary transfer provides faster performance in reading data from a server to an ADO.NET client. Binary transfer also requires less bandwidth than text transfer, although it sometimes uses more when transferring a large number of small values.&lt;/p&gt;
&lt;p&gt;Binary transfer mode is not backwards compatible to ADO.NET versions earlier than 3.8. If you are using an earlier version, set this value to false.&lt;/p&gt;
&lt;p&gt;The data output by both modes is identical with the following exceptions for certain data types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;FLOAT: Binary transfer has slightly better precision.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TIMESTAMPTZ: Binary transfer can fail to get the session time zone and default to the local time zone, while text transfer reliably uses the session time zone.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;NUMERIC: Binary transfer is forcibly disabled for NUMERIC data by the server for OpenText™ Analytics Database 11.0.2+.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt; 

&lt;td &gt;


true&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
ConnSettings&lt;/td&gt; 

&lt;td &gt;


SQL commands to run upon connection. Uses &lt;span class=&#34;code-input&#34;&gt;%3B&lt;/span&gt; for semicolons.&lt;/td&gt; 

&lt;td &gt;


string.Empty&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
IsolationLevel&lt;/td&gt; 

&lt;td &gt;




&lt;p&gt;Sets the transaction isolation level for the database. See &lt;a href=&#34;../../../../../../en/admin/transactions/#&#34;&gt;Transactions&lt;/a&gt; for a description of the different transaction levels. This value is either Serializable, ReadCommitted, or Unspecified. See &lt;a href=&#34;../../../../../../en/connecting-to/client-libraries/accessing/c/querying-db-using-ado-net/inserting-data-ado-net/creating-and-rolling-back-transactions/setting-transaction-isolation-level/#&#34;&gt;Setting the transaction isolation level&lt;/a&gt; for an example of setting the isolation level using this keyword.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; By default, this value is set to IsolationLevel.Unspecified, which means the connection uses the server&#39;s default transaction isolation level. The database&#39;s default isolation level is IsolationLevel.ReadCommitted.&lt;/p&gt;
&lt;/td&gt; 

&lt;td &gt;


System.Data.&lt;br /&gt;IsolationLevel.Unspecified&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Label&lt;/td&gt; 

&lt;td &gt;


A string to identify the session on the server.&lt;/td&gt; 

&lt;td &gt;


string&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
DirectBatchInsert&lt;/td&gt; 

&lt;td &gt;


Deprecated&lt;/td&gt; 

&lt;td &gt;


true&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
ResultBufferSize&lt;/td&gt; 

&lt;td &gt;


The size of the buffer to use when streaming results. A value of 0 means ResultBufferSize is turned off.&lt;/td&gt; 

&lt;td &gt;


8192&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
ConnectionTimeout&lt;/td&gt; 

&lt;td &gt;


Number seconds to wait for a connection. A value of 0 means no timeout.&lt;/td&gt; 

&lt;td &gt;


0&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
ReadOnly&lt;/td&gt; 

&lt;td &gt;


A Boolean value. If true, throw an exception on write attempts.&lt;/td&gt; 

&lt;td &gt;


false&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Pooling&lt;/td&gt; 

&lt;td &gt;


A boolean value, whether to enable connection pooling. Connection pooling is useful for server applications because it allows the server to reuse connections. This saves resources and enhances the performance of executing commands on the database. It also reduces the amount of time a user must wait to establish a connection to the database&lt;/td&gt; 

&lt;td &gt;


false&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
MinPoolSize&lt;/td&gt; 

&lt;td &gt;






&lt;p&gt;An integer that defines the minimum number of connections to pool.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Valid Values:&lt;/strong&gt; Cannot be greater than the number of connections that the server is configured to allow. Otherwise, an exception results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; 55&lt;/p&gt;
&lt;/td&gt; 

&lt;td &gt;


1&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
MaxPoolSize&lt;/td&gt; 

&lt;td &gt;




&lt;p&gt;An integer that defines the maximum number of connections to pool.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Valid Values:&lt;/strong&gt; Cannot be greater than the number of connections that the server is configured to allow. Otherwise, an exception results.&lt;/p&gt;
&lt;/td&gt; 

&lt;td &gt;


20&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
LoadBalanceTimeout&lt;/td&gt; 

&lt;td &gt;






&lt;p&gt;The amount of time, expressed in seconds, to timeout or remove unused pooled connections.&lt;/p&gt;
&lt;p&gt;**Disable: **Set to 0 (no timeouts)&lt;/p&gt;
&lt;p&gt;If you are using a cluster environment to load-balance the work, then pool is restricted to the servers in the cluster when the pool was created. If additional servers are added to the cluster, and the pool is not removed, then the new servers are never added to the connection pool unless LoadBalanceTimeout is set and exceeded or &lt;code&gt;VerticaConnection.ClearAllPools()&lt;/code&gt; is called manually from an application. If you are using load balancing, then set this property to a value that considers when new servers are added to the cluster. However, do not set it so low that pools are frequently removed and rebuilt, doing so makes pooling ineffective.&lt;/p&gt;
&lt;/td&gt; 

&lt;td &gt;


0 (no timeout)&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Workload&lt;/td&gt; 

&lt;td &gt;



The name of the workload for the session. For details, see &lt;a href=&#34;../../../../../../en/admin/managing-client-connections/connection-load-balancing/workload-routing/#&#34;&gt;Workload routing&lt;/a&gt;.&lt;/td&gt; 

&lt;td &gt;

None (no workload)&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
SSL&lt;/td&gt; 

&lt;td &gt;


A Boolean value, indicating whether to use SSL for the connection.&lt;/td&gt; 

&lt;td &gt;


false&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
IntegratedSecurity&lt;/td&gt; 

&lt;td &gt;
Provides a Boolean value that, when set to true, uses the user’s Windows credentials for authentication, instead of user/password in the connection string.&lt;/td&gt; 

&lt;td &gt;
false&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
KerberosServiceName&lt;/td&gt; 

&lt;td &gt;


Provides the service name portion of the database Kerberos principal; for example: &lt;code&gt;vertica/host@EXAMPLE.COM&lt;/code&gt;&lt;/td&gt; 

&lt;td &gt;


&lt;span class=&#34;sql&#34;&gt;vertica&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
KerberosHostname&lt;/td&gt; 

&lt;td &gt;


Provides the instance or host name portion of the database Kerberos principal; for example: &lt;code&gt;verticaost@EXAMPLE.COM&lt;/code&gt;&lt;/td&gt; 

&lt;td &gt;


Value specified in the servername connection string property&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Totp&lt;/td&gt; 

&lt;td &gt;


Specify the current Time-based One-time Password (Totp) value. The Totp is sent to the server in the connection string for validation. If MFA is enforced and you do not provide a Totp, a dialog is displayed. You need to enter the TOTP before proceeding with authentication. Totp values are generated at 30-second intervals. A Totp code remains valid for up to 90 seconds.&lt;/td&gt; 

&lt;td &gt;


None&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;/p&gt;
&lt;h2 id=&#34;oauth-connection-properties&#34;&gt;OAuth connection properties&lt;/h2&gt;
&lt;p&gt;For details on configuring the ADO.NET driver for OAuth authentication, see &lt;a href=&#34;../../../../../../en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/#&#34;&gt;Configuring OAuth authentication&lt;/a&gt;.&lt;/p&gt;

&lt;table class=&#34;table table-bordered&#34; &gt;



&lt;tr&gt; 

&lt;th &gt;
Property&lt;/th&gt; 

&lt;th &gt;
Description&lt;/th&gt; 

&lt;th &gt;
Default Value&lt;/th&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
OAuthAccessToken&lt;/td&gt; 

&lt;td &gt;
Required, an OAuth token that authorizes a user to the database. The client retrieves this from the identity provider and then presents it to the databse in a connection attempt. The database then contacts the IDP to verify that the access token is valid.&lt;/td&gt; 

&lt;td &gt;

none&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;


      </description>
    </item>
    
    <item>
      <title>Connecting-To: Load balancing in ADO.NET</title>
      <link>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/load-balancing-ado-net/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/load-balancing-ado-net/</guid>
      <description>
        
        
        &lt;h2 id=&#34;native-connection-load-balancing&#34;&gt;Native connection load balancing&lt;/h2&gt;
&lt;p&gt;Native connection load balancing helps spread the overhead caused by client connections on the hosts in the OpenText™ Analytics Database. Both the server and the client must enable native connection load balancing. If enabled by both, then when the client initially connects to a host in the database, the host picks a host to handle the client connection from a list of the currently up hosts in the database, and informs the client which host it has chosen.&lt;/p&gt;
&lt;p&gt;If the initially-contacted host does not choose itself to handle the connection, the client disconnects, then opens a second connection to the host selected by the first host. The connection process to this second host proceeds as usual—if SSL is enabled, then SSL negotiations begin, otherwise the client begins the authentication process. See &lt;a href=&#34;../../../../../../en/admin/managing-client-connections/connection-load-balancing/about-native-connection-load-balancing/#&#34;&gt;About native connection load balancing&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;To enable native load balancing on your client, set the &lt;code&gt;ConnectionLoadBalance&lt;/code&gt; connection parameter to true either in the connection string or using the &lt;code&gt;ConnectionStringBuilder()&lt;/code&gt;. The following example demonstrates connecting to the database several times with native connection load balancing enabled, and fetching the name of the node handling the connection from the V_MONITOR.&lt;a href=&#34;../../../../../../en/sql-reference/system-tables/v-monitor-schema/current-session/#&#34;&gt;CURRENT_SESSION&lt;/a&gt; system table.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;using System;
using System.Text;
using System.Data;
using Vertica.Data.VerticaClient;

namespace ConsoleApplication1 {
    class Program {
        static void Main(string[] args) {
            VerticaConnectionStringBuilder builder = new VerticaConnectionStringBuilder();
            builder.Host = &amp;#34;v_vmart_node0001.example.com&amp;#34;;
            builder.Database = &amp;#34;VMart&amp;#34;;
            builder.User = &amp;#34;dbadmin&amp;#34;;
            // Enable native client load balancing in the client,
            // must also be enabled on the server!
            builder.ConnectionLoadBalance = true;

            // Connect 3 times to verify a new node is connected
            // for each connection.
            for (int i = 1; i &amp;lt;= 4; i++) {
                try {
                    VerticaConnection _conn = new VerticaConnection(builder.ToString());
                    _conn.Open();
                    if (i == 1) {
                        // On the first connection, check the server policy for load balance
                        VerticaCommand sqlcom = _conn.CreateCommand();
                        sqlcom.CommandText = &amp;#34;SELECT LOAD_BALANCE_POLICY FROM V_CATALOG.DATABASES&amp;#34;;
                        var returnValue = sqlcom.ExecuteScalar();
                        Console.WriteLine(&amp;#34;Status of load balancy policy
             on server: &amp;#34; + returnValue.ToString() + &amp;#34;\n&amp;#34;);
                    }
                    VerticaCommand command = _conn.CreateCommand();
                    command.CommandText = &amp;#34;SELECT node_name FROM V_MONITOR.CURRENT_SESSION&amp;#34;;
                    VerticaDataReader dr = command.ExecuteReader();
                    while (dr.Read()) {
                        Console.Write(&amp;#34;Connect attempt #&amp;#34; + i + &amp;#34;... &amp;#34;);
                        Console.WriteLine(&amp;#34;Connected to node &amp;#34; + dr[0]);
                    }
                    dr.Close();
                    _conn.Close();
                    Console.WriteLine(&amp;#34;Disconnecting.\n&amp;#34;);
                }
                catch(Exception e) {
                    Console.WriteLine(e.Message);
                }
            }
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Running the above example produces the following output:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Status of load balancing policy on server: roundrobin

Connect attempt #1... Connected to node v_vmart_node0001
Disconnecting.

Connect attempt #2... Connected to node v_vmart_node0002
Disconnecting.

Connect attempt #3... Connected to node v_vmart_node0003
Disconnecting.

Connect attempt #4... Connected to node v_vmart_node0001
Disconnecting.
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;hostname-based-load-balancing&#34;&gt;Hostname-based load balancing&lt;/h2&gt;
&lt;p&gt;You can also balance workloads by resolving a single hostname to multiple IP addresses. The ADO.NET client driver load balances by automatically resolving the hostname to one of the specified IP addresses at random.&lt;/p&gt;
&lt;p&gt;For example, suppose the hostname &lt;code&gt;verticahost.example.com&lt;/code&gt; has the following entries in &lt;code&gt;C:\Windows\System32\drivers\etc\hosts&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;192.0.2.0 verticahost.example.com
192.0.2.1 verticahost.example.com
192.0.2.2 verticahost.example.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Specifying the hostname &lt;code&gt;verticahost.example.com&lt;/code&gt; randomly resolves to one of the listed IP addresses.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Connecting-To: ADO.NET connection failover</title>
      <link>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/ado-net-connection-failover/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/connecting-to/client-libraries/accessing/c/connecting-to-db/ado-net-connection-failover/</guid>
      <description>
        
        
        &lt;p&gt;If a client application attempts to connect to a host in the OpenText™ Analytics Database cluster that is down, the connection attempt fails when using the default connection configuration. This failure usually returns an error to the user. The user must either wait until the host recovers and retry the connection or manually edit the connection settings to choose another host.&lt;/p&gt;
&lt;p&gt;Due to the database&#39;s distributed architecture, you usually do not care which database host handles a client application&#39;s connection. You can use the client driver&#39;s connection failover feature to prevent the user from getting connection errors when the host specified in the connection settings is unreachable. The JDBC driver gives you several ways to let the client driver automatically attempt to connect to a different host if the one specified in the connection parameters is unreachable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Configure your DNS server to return multiple IP addresses for a host name. When you use this host name in the connection settings, the client attempts to connect to the first IP address from the DNS lookup. If the host at that IP address is unreachable, the client tries to connect to the second IP, and so on until it either manages to connect to a host or it runs out of IP addresses.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supply a list of backup hosts for the client driver to try if the primary host you specify in the connection parameters is unreachable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;(JDBC only) Use driver-specific connection properties to manage timeouts before attempting to connect to the next node.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For all methods, the process of failover is transparent to the client application (other than specifying the list of backup hosts, if you choose to use the list method of failover). If the primary host is unreachable, the client driver automatically tries to connect to other hosts.&lt;/p&gt;
&lt;p&gt;Failover only applies to the initial establishment of the client connection. If the connection breaks, the driver does not automatically try to reconnect to another host in the database.&lt;/p&gt;
&lt;h2 id=&#34;choosing-a-failover-method&#34;&gt;Choosing a failover method&lt;/h2&gt;
&lt;p&gt;You usually choose to use one of the two failover methods. However, they do work together. If your DNS server returns multiple IP addresses and you supply a list of backup hosts, the client first tries all of the IPs returned by the DNS server, then the hosts in the backup list.

&lt;div class=&#34;alert admonition note&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Note&lt;/h4&gt;

If a host name in the backup host list resolves to multiple IP addresses, the client does not try all of them. It just tries the first IP address in the list.

&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;The DNS method of failover centralizes the configuration client failover. As you add new nodes to your OpenText™ Analytics Database cluster, you can choose to add them to the failover list by editing the DNS server settings. All client systems that use the DNS server to connect to the database automatically use connection failover without having to change any settings. However, this method does require administrative access to the DNS server that all clients use to connect to the database cluster. This may not be possible in your organization.&lt;/p&gt;
&lt;p&gt;Using the backup server list is easier than editing the DNS server settings. However, it decentralizes the failover feature. You may need to update the application settings on each client system if you make changes to your database cluster.&lt;/p&gt;
&lt;h2 id=&#34;using-dns-failover&#34;&gt;Using DNS failover&lt;/h2&gt;
&lt;p&gt;To use DNS failover, you need to change your DNS server&#39;s settings to map a single host name to multiple IP addresses of hosts in your database cluster. You then have all client applications use this host name to connect to the database.&lt;/p&gt;
&lt;p&gt;You can choose to have your DNS server return as many IP addresses for the host name as you want. In smaller clusters, you may choose to have it return the IP addresses of all of the hosts in your cluster. However, for larger clusters, you should consider choosing a subset of the hosts to return. Otherwise there can be a long delay as the client driver tries unsuccessfully to connect to each host in a database that is down.&lt;/p&gt;
&lt;h2 id=&#34;using-the-backup-host-list&#34;&gt;Using the backup host list&lt;/h2&gt;
&lt;p&gt;To enable backup list-based connection failover, your client application has to specify at least one IP address or host name of a host in the &lt;code&gt;BackupServerNode&lt;/code&gt; parameter. The host name or IP can optionally be followed by a colon and a port number. If not supplied, the driver defaults to the standard database port number (5433). To list multiple hosts, separate them by a comma.&lt;/p&gt;
&lt;p&gt;The following example demonstrates setting the &lt;code&gt;BackupServerNode&lt;/code&gt; connection parameter to specify additional hosts for the connection attempt. The connection string intentionally has a non-existent node, so that the initial connection fails. The client driver has to backup the hosts to establish a connection to the database.&lt;/p&gt;

&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;using System;
using System.Text;
using System.Data;
using Vertica.Data.VerticaClient;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            VerticaConnectionStringBuilder builder =
        new VerticaConnectionStringBuilder();
            builder.Host = &amp;#34;not.a.real.host:5433&amp;#34;;
            builder.Database = &amp;#34;VMart&amp;#34;;
            builder.User = &amp;#34;dbadmin&amp;#34;;
            builder.BackupServerNode =
        &amp;#34;another.broken.node:5433,v_vmart_node0002.example.com:5433&amp;#34;;
            try
            {
                VerticaConnection _conn =
            new VerticaConnection(builder.ToString());
                _conn.Open();
                VerticaCommand sqlcom = _conn.CreateCommand();
                sqlcom.CommandText = &amp;#34;SELECT node_name FROM current_session&amp;#34;;
                var returnValue = sqlcom.ExecuteScalar();
                Console.WriteLine(&amp;#34;Connected to node: &amp;#34; +
            returnValue.ToString() + &amp;#34;\n&amp;#34;);
                _conn.Close();
                Console.WriteLine(&amp;#34;Disconnecting.\n&amp;#34;);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The ADO.NET connection pool reuses database connections for efficiency. When the Close() function is called on the connection in the application code, it does not terminate the physical connection to the database. Instead, the connection is returned to the pool for future use. All pooled connections must be closed or released when the application finishes execution using ClearPool.&lt;/p&gt;
&lt;h2 id=&#34;notes&#34;&gt;Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;p&gt;The Load balancer does not redirect to a host where the host primary address is down. However, it may still redirect to a host whose export address is not available. In such cases, when the BackupServerNode connection parameter is provided:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The clients attempt to establish a new connection using the backup hosts.&lt;/li&gt;
&lt;li&gt;The server treats this as a new connection request.&lt;/li&gt;
&lt;li&gt;This new connection is again subject to load balancing.&lt;/li&gt;
&lt;li&gt;As load balancing is not preserved globally across initiator nodes, a retry through the backup host still redirects to the same export address that is not reachable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The BackupServerNode connection parameter does not prevent failures that are caused by load-balanced targets that are not reachable.&lt;/p&gt;
 See &lt;a href=&#34;../../../../../../en/connecting-to/client-libraries/accessing/c/connecting-to-db/load-balancing-ado-net/#&#34;&gt;Load balancing in ADO.NET&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Connections to a host taken from the BackupServerNode list are not pooled for ADO.NET connections.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
