in language-extensions/java/src/javaextension.cpp [124:193]
SQLRETURN InitSession(
SQLGUID SessionId,
SQLUSMALLINT TaskId,
SQLUSMALLINT NumTasks,
SQLCHAR *Script,
SQLULEN ScriptLength,
SQLUSMALLINT InputSchemaColumnsNumber,
SQLUSMALLINT ParametersNumber,
SQLCHAR *InputDataName,
SQLUSMALLINT InputDataNameLength,
SQLCHAR *OutputDataName,
SQLUSMALLINT OutputDataNameLength
)
{
string msg = "JavaExtension::InitSession";
LOG(msg);
SQLRETURN result = SQL_SUCCESS;
try
{
if (g_env == nullptr)
{
throw runtime_error("Function InitSession() called before extension is initialized");
}
g_sessionData = new JavaSession();
string guidToString = JniTypeHelper::ConvertGuidToString(&SessionId);
msg = "Starting session: " + guidToString + " with task id: " +
to_string(TaskId) + ".";
LOG(msg);
g_sessionData->Init(g_env,
SessionId,
TaskId,
NumTasks,
Script,
ScriptLength,
InputSchemaColumnsNumber,
ParametersNumber,
InputDataName,
InputDataNameLength,
OutputDataName,
OutputDataNameLength);
}
catch (java_exception_error &ex)
{
result = SQL_ERROR;
LOG_JAVA_EXCEPTION(ex.what());
JniHelper::LogJavaException(g_env);
}
catch (exception &ex)
{
result = SQL_ERROR;
LOG_ERROR(ex.what());
}
catch (...)
{
result = SQL_ERROR;
LOG_ERROR("Unexpected exception occurred in function InitSession()");
}
return result;
}