Teradata 和 Java 服务器连接
Teradata and Java server Connection
我正在尝试使用 Teradata UDF 连接到 JAVA 服务器,这是我的代码 below.It 使用主机作为 "localhost" 和端口(整数)作为“9091”和所有已经提供了诸如 PEM 文件位置等参数,但是该函数总是从 catch block.I 中退出知道 Teradata UDF 中不允许使用 exit(0)
,我只是为了 [=19] 而使用它=] 在 ORACLE UDF 的情况下,相同的代码连接到服务器绝对没问题。请说明在 Teradata 的情况下哪些端口可用于通信,或者 Teradata 是否支持与服务器的 SSL 连接。
服务器接受类型为请求和 returns 结果的参数,两者都是类型 vector <struct>
.
Response CplusplusClient::startClient(DeTokenizationRequest request) {
boost::shared_ptr<TSSLSocketFactory> factory(new TSSLSocketFactory());
factory->loadPrivateKey(PRIVATE_KEY.c_str());
factory->loadCertificate(CERTIFICATE.c_str());
factory->loadTrustedCertificates(TRUSTED_CERTIFICATE.c_str());
factory->authenticate(true);
boost::shared_ptr<TSSLSocket> socket = factory->createSocket(HOST,PORT);
boost::shared_ptr<TTransport> transport(new TBufferedTransport(socket));
boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
XSecurityServiceClient client(protocol);
Response result;
try {
transport->open();
client.requested(result, request);
transport->close();
} catch (TException& tx) {
exit(0);
}
return result;
}
}
将端口更改为 9092
并且有效
我正在尝试使用 Teradata UDF 连接到 JAVA 服务器,这是我的代码 below.It 使用主机作为 "localhost" 和端口(整数)作为“9091”和所有已经提供了诸如 PEM 文件位置等参数,但是该函数总是从 catch block.I 中退出知道 Teradata UDF 中不允许使用 exit(0)
,我只是为了 [=19] 而使用它=] 在 ORACLE UDF 的情况下,相同的代码连接到服务器绝对没问题。请说明在 Teradata 的情况下哪些端口可用于通信,或者 Teradata 是否支持与服务器的 SSL 连接。
服务器接受类型为请求和 returns 结果的参数,两者都是类型 vector <struct>
.
Response CplusplusClient::startClient(DeTokenizationRequest request) {
boost::shared_ptr<TSSLSocketFactory> factory(new TSSLSocketFactory());
factory->loadPrivateKey(PRIVATE_KEY.c_str());
factory->loadCertificate(CERTIFICATE.c_str());
factory->loadTrustedCertificates(TRUSTED_CERTIFICATE.c_str());
factory->authenticate(true);
boost::shared_ptr<TSSLSocket> socket = factory->createSocket(HOST,PORT);
boost::shared_ptr<TTransport> transport(new TBufferedTransport(socket));
boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
XSecurityServiceClient client(protocol);
Response result;
try {
transport->open();
client.requested(result, request);
transport->close();
} catch (TException& tx) {
exit(0);
}
return result;
}
}
将端口更改为 9092
并且有效