package org.firebirdsql.gds.impl.jni;
"WARNING: The native driver does not apply connectTimeout for establishing the socket connection (only for protocol negotiation with the Firebird server), " +
"it will not detect unreachable hosts within the specified timeout";
private static byte[] stmtInfo = new byte[] {
if (databaseParameterBuffer != null) {
if (filenameCharset != null)
urlData = serverUrl.getBytes(filenameCharset);
byte[] nullTerminated = new byte[urlData.length + 1];
System.arraycopy(urlData, 0, nullTerminated, 0, urlData.length);
urlData = nullTerminated;
synchronized (db_handle) {
final byte[] bpb = blobParameterBuffer == null ? null
synchronized (db_handle) {
if (filenameCharset != null)
urlData = serverUrl.getBytes(filenameCharset);
byte[] nullTerminated = new byte[urlData.length + 1];
System.arraycopy(urlData, 0, nullTerminated, 0, urlData.length);
urlData = nullTerminated;
synchronized (db_handle) {
final byte[] returnValue = new byte[buffer_length];
buffer_length, returnValue);
synchronized (db_handle) {
byte[] statement, int dialect, XSQLDA in_xsqlda, XSQLDA out_xsqlda)
synchronized (db_handle) {
synchronized (db_handle) {
if (out_xsqlda != null) {
for (int i = 0; i < fetchSize; i++) {
da_version, xsqlda, fetchSize);
Find out the type of the specified statement.
final byte [] REQUEST = new byte [] {
for (int i = 0; i < buffer.length; i++){
public byte[] iscExpandDpb(byte[] dpb, int dpb_length, int param,
final byte[] bpb = blobParameterBuffer == null ? null
byte[] buffer = new byte[4];
for (int i = 0; i < 4; i++){
buffer[i] = (byte)(transactionId >>> (i * 8));
synchronized (db_handle) {
if (serviceHandle == null) {
final byte[] serviceParameterBufferBytes = serviceParameterBufferImp == null ? null
synchronized (serviceHandle) {
throw new GDSException("serviceHandle is already attached.");
serviceParameterBufferBytes);
synchronized (serviceHandle) {
final byte[] serviceParameterBufferBytes = serviceParameterBufferImp == null ? null
final byte[] serviceRequestBufferBytes = serviceRequestBufferImp == null ? null
synchronized (serviceHandle) {
serviceParameterBufferBytes, serviceRequestBufferBytes,
final byte[] serviceRequestBufferBytes = serviceRequestBufferImp == null ? null
synchronized (serviceHandle) {
value += (buffer[i++] & 0xff) << shift;
return (buffer[pos] & 0xff) | ((buffer[pos + 1] & 0xff) << 8);
int item_length, byte[] items, int buffer_length, byte[] buffer)