|
112 KB
With Singlestore (memsql) we can get the generic jdbc mariadb.jar in ADS20.5 to work, but Singlestore (memSQL) native connection with kerberos (SSO) does not work with ADS22.0.
He said Windows 10 but the support information I requested shows MS Server 2012.
Support Information
=====================
License Key: ***********************
Product: Aqua Data Studio
Version: 22.0.0
Build #: 58879
Build Date: 2021-May-17 10:37:36 AM
Operating Environment: Windows Server 2012 R2 (6.3, amd64) / Cp1252 / en / US / AdoptOpenJDK 1.8.0_222-b10
Memory: Max=766,312,448; Total=204,824,576; Free=38,346,776; CPUs=1
In-Window Graphics Capabilities
Graphics Vendor: Microsoft Corporation
OpenGL Renderer: GDI Generic
OpenGL Version: 1.1.0
Double-Buffering: Disabled
Anti-Aliasing: Disabled
Anti-Aliasing Sample Count: 0
Hardware Acceleration: Disabled
Color Bits: Red: 8 Green: 8 Blue: 8 Alpha: 0
Depth Bits: 16
Accumulation Buffer Bits: Red: 16 Green: 16 Blue: 16
Initialization Time: 1891 ms
Offscreen Graphics Capabilities
Graphics Vendor: Brian Paul
OpenGL Renderer: Mesa OffScreen
OpenGL Version: 2.1 Mesa 7.8.2
Double-Buffering: Disabled
Anti-Aliasing: Disabled
Anti-Aliasing Sample Count: 0
Hardware Acceleration: Disabled
Color Bits: Red: 8 Green: 8 Blue: 8 Alpha: 8
Depth Bits: 16
Accumulation Buffer Bits: Red: 16 Green: 16 Blue: 16
Initialization Time: 62 ms
Hardware PBuffer Available: No
Using PBuffer: No
Using Ram Buffer: Yes
Offscreen Rendering: Enabled
Offscreen Buffer Size: 800x600
He said Windows 10 but the support information I requested shows MS Server 2012.
Support Information
=====================
License Key: ***********************
Product: Aqua Data Studio
Version: 22.0.0
Build #: 58879
Build Date: 2021-May-17 10:37:36 AM
Operating Environment: Windows Server 2012 R2 (6.3, amd64) / Cp1252 / en / US / AdoptOpenJDK 1.8.0_222-b10
Memory: Max=766,312,448; Total=204,824,576; Free=38,346,776; CPUs=1
In-Window Graphics Capabilities
Graphics Vendor: Microsoft Corporation
OpenGL Renderer: GDI Generic
OpenGL Version: 1.1.0
Double-Buffering: Disabled
Anti-Aliasing: Disabled
Anti-Aliasing Sample Count: 0
Hardware Acceleration: Disabled
Color Bits: Red: 8 Green: 8 Blue: 8 Alpha: 0
Depth Bits: 16
Accumulation Buffer Bits: Red: 16 Green: 16 Blue: 16
Initialization Time: 1891 ms
Offscreen Graphics Capabilities
Graphics Vendor: Brian Paul
OpenGL Renderer: Mesa OffScreen
OpenGL Version: 2.1 Mesa 7.8.2
Double-Buffering: Disabled
Anti-Aliasing: Disabled
Anti-Aliasing Sample Count: 0
Hardware Acceleration: Disabled
Color Bits: Red: 8 Green: 8 Blue: 8 Alpha: 8
Depth Bits: 16
Accumulation Buffer Bits: Red: 16 Green: 16 Blue: 16
Initialization Time: 62 ms
Hardware PBuffer Available: No
Using PBuffer: No
Using Ram Buffer: Yes
Offscreen Rendering: Enabled
Offscreen Buffer Size: 800x600
From the customer:
I can provide anything you need. More than likely the UPN (user principal) being passed to the KDC from ADS via the mariadb driver is flawed..
I am providing below a small snippet of a sample java program which works by SSO by picking the SSPI ticket from the MS windows Kerberos cache. So ADS22 should be also doing the same, based on the driver parameters for JDBC configured for the server-properties.
Java program to test singlestore connection via mariadb driver (min mariadb jdbc version needed 1.5+)
====================================================================================
import java.sql.*;
import java.util.Properties;
import java.util.concurrent.*;
public class javatest {
private static final String dbClassName = "org.mariadb.jdbc.Driver";
private static final String CONNECTION = "jdbc:mariadb://dev.memrefdatad002a.mag.memsql.url.gs.com:3306/memsql?user=santhi";
private static final String USER = "santhi";
private static final String PASSWORD = "";
private static void executeSQL(Connection conn, String sql) throws SQLException {
try (Statement stmt = conn.createStatement()) {
stmt.execute(sql);
}
}
private static void ResetEnvironment() throws SQLException {
Properties p = new Properties();
p.put("user", USER);
p.put("password", PASSWORD);
p.put("database", "testdb");
try (Connection conn = DriverManager.getConnection(CONNECTION, p)) {
for (String query: new String[] {
"CREATE TABLE tbl (id INT AUTO_INCREMENT PRIMARY KEY)"
}) {
executeSQL(conn, query);
}
}
}
private static void worker() {
Properties properties = new Properties();
properties.put("user", USER);
properties.put("password", PASSWORD);
try (Connection conn = DriverManager.getConnection(CONNECTION, properties)) {
executeSQL(conn, "USE testdb");
while (!Thread.interrupted()) {
executeSQL(conn, "INSERT INTO tbl VALUES (NULL)");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws ClassNotFoundException, SQLException, InterruptedException {
Class.forName(dbClassName);
ResetEnvironment();
ExecutorService executor = Executors.newFixedThreadPool(20);
for (int i = 0; i < 20; i++) {
executor.submit(new Runnable() {
@Override
public void run() {
worker();
}
});
}
Thread.sleep(20000);
executor.shutdownNow();
if (!executor.awaitTermination(5, TimeUnit.SECONDS)) {
System.err.println("Pool did not terminate");
}
}
}
From the customer:
I can provide anything you need. More than likely the UPN (user principal) being passed to the KDC from ADS via the mariadb driver is flawed..
I am providing below a small snippet of a sample java program which works by SSO by picking the SSPI ticket from the MS windows Kerberos cache. So ADS22 should be also doing the same, based on the driver parameters for JDBC configured for the server-properties.
Java program to test singlestore connection via mariadb driver (min mariadb jdbc version needed 1.5+)
====================================================================================
import java.sql.*;
import java.util.Properties;
import java.util.concurrent.*;
public class javatest {
private static final String dbClassName = "org.mariadb.jdbc.Driver";
private static final String CONNECTION = "jdbc:mariadb://dev.memrefdatad002a.mag.memsql.url.gs.com:3306/memsql?user=santhi";
private static final String USER = "santhi";
private static final String PASSWORD = "";
private static void executeSQL(Connection conn, String sql) throws SQLException {
try (Statement stmt = conn.createStatement()) {
stmt.execute(sql);
}
}
private static void ResetEnvironment() throws SQLException {
Properties p = new Properties();
p.put("user", USER);
p.put("password", PASSWORD);
p.put("database", "testdb");
try (Connection conn = DriverManager.getConnection(CONNECTION, p)) {
for (String query: new String[] {
"CREATE TABLE tbl (id INT AUTO_INCREMENT PRIMARY KEY)"
}) {
executeSQL(conn, query);
}
}
}
private static void worker() {
Properties properties = new Properties();
properties.put("user", USER);
properties.put("password", PASSWORD);
try (Connection conn = DriverManager.getConnection(CONNECTION, properties)) {
executeSQL(conn, "USE testdb");
while (!Thread.interrupted()) {
executeSQL(conn, "INSERT INTO tbl VALUES (NULL)");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws ClassNotFoundException, SQLException, InterruptedException {
Class.forName(dbClassName);
ResetEnvironment();
ExecutorService executor = Executors.newFixedThreadPool(20);
for (int i = 0; i < 20; i++) {
executor.submit(new Runnable() {
@Override
public void run() {
worker();
}
});
}
Thread.sleep(20000);
executor.shutdownNow();
if (!executor.awaitTermination(5, TimeUnit.SECONDS)) {
System.err.println("Pool did not terminate");
}
}
}
Goldman Sachs is requesting an update on this issue!
Goldman Sachs is requesting an update on this issue!
Hi John,
This is on the list for a future release.
Thanks,
Tom
Hi John,
This is on the list for a future release.
Thanks,
Tom
Issue #15857 |
New |
Completion |
No due date |
No fixed build |
No time estimate |
With Singlestore (memsql) we can get the generic jdbc mariadb.jar in ADS20.5 to work, but Singlestore (memSQL) native connection with kerberos (SSO) does not work with ADS22.0.