Additional Data for Server Configuration

From InterBase

Go Up to Querying Server Configuration


Software activation certificates

The isc_info_svc_get_license result buffer item returns multiple sets of data as arguments. For each software activation certificate in the file ib_license.dat on the server, this cluster returns the ID and key strings. If there are multiple certificates installed on the server, the return buffer contains multiple pairs of ID and key strings. The contents of the buffer end when a cluster is identified with the isc_info_flag_end value. The following table describes the cluster identifiers for the certificate information.

Services API software activation certificate arguments
Argument Purpose Return
length
Return value

isc_spb_lic_id

The ID string for a software activation certificate

2-bytes + string

String

isc_spb_lic_key

The corresponding Key string for a software activation certificate

2-bytes + string

String

isc_info_flag_end

Signals the end of arguments to isc_info_svc_get_license

Querying using Services API: software activation certificates

. . .
case isc_info_svc_get_license: {
printf ("Software activation certificates:\n");
do {
switch (*p++) {
case isc_spb_lic_key: {
path_length = (unsigned short)
isc_portable_integer (p, sizeof(unsigned short));
p += sizeof (unsigned short);
buffer = (char*) malloc (path_length);
strncpy (buffer, p, path_length);
buffer [path_length] = '\0';
printf ("\tLicense Key: %s\n", buffer);
free(buffer);
p += path_length;
break;
}
case isc_spb_lic_id: {
path_length = (unsigned short)
isc_portable_integer (p, sizeof(unsigned short));
p += sizeof (unsigned short);
buffer = (char*) malloc (path_length);
strncpy (buffer, p, path_length);
buffer [path_length] = '\0';
printf ("\tLicense ID: %s\n", buffer);
free(buffer);
p += path_length;
break;
}
}
} while (*p != isc_info_flag_end);
break;
}
. . .

Server configuration properties

You can request the Services Manager to report the contents of the InterBase configuration file on the server. This file is in the installation directory of InterBase, and is named ibconfig on all platforms.

The result buffer cluster consists of the isc_info_svc_get_config identifier, followed by a two-byte number of data. The data follow as pairs of single-byte configuration entry identifiers and four-byte values. Configuration entries with string values, such as TMP_DIRECTORY, are not currently supported by this cluster.

Some of the configuration items are relevant only on specific platforms. The Services Manager returns only configuration data that are relevant to the respective server platform that runs the Services Manager.

The Services Manager does not return values for configuration items that are set to their default value.

Querying using Services API: server configuration information

. . .
case isc_info_svc_get_config: {
unsigned short chTmp = 0, key;
unsigned long len = 0, ulConfigInfo;

printf ("Configuration Settings:\n");
len = (unsigned short)
isc_portable_integer(p, sizeof(unsigned short));
p += sizeof(unsigned short);
for (chTmp = 0; chTmp < len; chTmp++) {
key = p[chTmp];
ulConfigInfo = (unsigned long)
isc_portable_integer(p+ chTmp + 2, p[chTmp+1]);
switch (key) {
case ISCCFG_LOCKMEM_KEY:
printf ("\tLock mem: %d\n", ulConfigInfo);
break;
case ISCCFG_LOCKSEM_KEY:
printf ("\tLock Semaphores: %d\n", ulConfigInfo);
break;
case ISCCFG_LOCKSIG_KEY:
printf ("\tLock sig: %d\n", ulConfigInfo);
break;
case ISCCFG_EVNTMEM_KEY:
printf ("\tEvent mem: %d\n", ulConfigInfo);
break;
case ISCCFG_PRIORITY_KEY:
printf ("\tPriority: %d\n", ulConfigInfo);
break;
case ISCCFG_MEMMIN_KEY:
printf ("\tMin memory: %d\n", ulConfigInfo);
break;
case ISCCFG_MEMMAX_KEY:
printf ("\tMax Memory: %d\n", ulConfigInfo);
break;
case ISCCFG_LOCKORDER_KEY:
printf ("\tLock order: %d\n", ulConfigInfo);
break;
case ISCCFG_ANYLOCKMEM_KEY:
printf ("\tAny lock mem: %d\n", ulConfigInfo);
break;
case ISCCFG_ANYLOCKSEM_KEY:
printf ("\tAny lock semaphore: %d\n",
ulConfigInfo);
break;
case ISCCFG_ANYLOCKSIG_KEY:
printf ("\tany lock sig: %d\n", ulConfigInfo);
break;
case ISCCFG_ANYEVNTMEM_KEY:
printf ("\tany event mem: %d\n", ulConfigInfo);
break;
case ISCCFG_LOCKHASH_KEY:
printf ("\tLock hash: %d\n", ulConfigInfo);
break;
case ISCCFG_DEADLOCK_KEY:
printf ("\tDeadlock: %d\n", ulConfigInfo);
break;
case ISCCFG_LOCKSPIN_KEY:
printf ("\tLock spin: %d\n", ulConfigInfo);
break;
case ISCCFG_CONN_TIMEOUT_KEY:
printf ("\tConn timeout: %d\n", ulConfigInfo);
break;
case ISCCFG_DUMMY_INTRVL_KEY:
printf ("\tDummy interval: %d\n", ulConfigInfo);
break;
case ISCCFG_IPCMAP_KEY:
printf ("\tMap size: %d\n", ulConfigInfo);
break;
case ISCCFG_DBCACHE_KEY:
printf ("\tCache size: %d\n", ulConfigInfo);
break;
}
chTmp += p[chTmp+1] + 1;
}
break;
}
. . .

Advance To: