T24DAC / SUPPORT & DOCUMENTATION

Knowledge base

Setup instructions, query examples and answers to common configuration problems.

Getting started

Install and configure the Data Access ServerSet up the Windows server and locate its configuration files.

Run the server installer supplied with your release. The guide calls it t24das.exe and describes both a Windows service (vtservice.exe) and console application (vtconsole.exe). When T24 runs on Linux or UNIX, install the Data Access Server on a separate Windows host.

Review config.ini and aliases.json, normally in C:\ProgramData\Vultar. Start the service or console after completing configuration.

Port=888
LogLevel=2
LogDir=logs
; Optional result-file directory
;Temp=D:\temp

The server watches config.ini and reloads its contents. When an individual setting takes effect depends on the component reading it; verify the changed setting. Confirm operating-system compatibility and size the server for your workload.

Connections

Configure a TAFC connectionDefine a jBASE alias and deploy the TAFC data module.
  1. Check the Java version with java -version. The documented procedure requires Java 8 or later; check compatibility with the supplied t24client.jar.
  2. Define an alias in aliases.json: Name is the alias name; Type is jbase; Host is <t24_host>:<connector_port>. The default connector port is 8125 and must match t24client.properties. Timeout is a response timeout in seconds.
  3. Copy t24client.jar, t24client.properties, and the appropriate t24dac_startup.cmd or t24dac_startup.sh into bnk.run. The package also supplies t24clientInstall.exe for its credential-based installation workflow.
  4. Create t24dac_profile from remote.cmd/mbremote.cmd on Windows or .profile on UNIX. Keep the environment setup; remove trailing calls to loginproc, other executables, and exit.
  5. On UNIX, make the startup script executable. Without configured shell credentials, start it manually; ensure the configured connector port is reachable.
chmod a+x t24dac_startup.sh
./t24dac_startup.sh

On Windows, use .\t24dac_startup.cmd. The alias supports User, Password, SSH, and PrivateKey for the documented automatic-start workflow. Configure these values for your deployment. Escape backslashes in JSON paths, for example "PrivateKey": "C:\\keys\\connector.ppk".

Configure Oracle or SQL Server direct accessUse the direct connector for an Oracle or MSSQL backend, including the documented TAFJ setup.

A direct connector reads the database without the TAFC data module. Create or test aliases with vtdrvadm.exe, or edit aliases.json.

For Oracle, use Type = ora, Host = <oracle_host>/<database>, and a case-sensitive Schema. Configure the matching OCI library through OracleLibPath for the 32-bit server or OracleLibPath64 for the 64-bit server. The documented database account requires SELECT access to DBA_TABLES, DBA_INDEXES, USER_OBJECTS, and DBA_IND_EXPRESSIONS.

For SQL Server, use Type = MSSQL, Host = <sql_host>/<database>, and the configured Schema. In JSON, a named instance has the shape <sql_host>\\<instance>/<database>. The guide requires SELECT access to INFORMATION_SCHEMA.TABLES, SYS.INDEXES, SYS.INDEX_COLUMNS, SYS.COLUMNS, SYS.TABLES, and SYS.TYPES. Its Windows-authentication configuration leaves User and Password empty.

The guide describes optional Oracle Compression, default false, with extra Oracle-side setup. Do not enable it without that setup. Confirm client-library dependencies for your installed release.

For the TAFJ setup documented here, select the appropriate Oracle or MSSQL direct connector. DB2 Direct is not available in the described codebase.

Connect a JDBC applicationAdd the supplied JAR and point the connection at a server alias.
  1. Add t24_jdbc.jar to the client's driver configuration. In the guide's SQuirreL example, use Drivers > Add > Extra Class Path.
  2. Set the driver class to com.vultar.jdbc.Driver.
  3. Create a connection using the URL below, replacing the placeholders.
  4. Test the connection, then connect.
jdbc:t24://<host>:<port>;alias=<alias_name>

host is the Data Access Server host. port matches Port in its config.ini and defaults to 888. alias_name identifies the T24 environment defined in the server's aliases.json. This client alias is distinct from the server-side backend connection definition.

Create an ODBC data sourceMatch application bitness, connect to an alias, and set company and expansion options.
  1. Run t24odbc.exe, which installs the 32-bit and 64-bit drivers.
  2. Open the ODBC Data Source Administrator matching the application. On 64-bit Windows, use C:\Windows\SysWOW64\odbcad32.exe for 32-bit applications or C:\Windows\System32\odbcad32.exe for 64-bit applications. On 32-bit Windows, use the System32 path.
  3. Create a data source and enter its name, Vultar Server host, and port.
  4. Use the first Connect button to contact the server and retrieve aliases. Select an alias, then use the second Connect button to connect to T24.
  5. Select the default company mnemonic. The source describes this for company-dependent F_* tables, such as its F_ACCOUNT example.
  6. Enable AutoExpand if records should expand without explicit expansion operands. Save with OK and test from an ODBC query client.

The manual illustrates WinSQL. Company-specific table naming varies: its underscore examples are source examples, not a requirement to use those names in every environment.

SQL queries

Select, filter, and sort T24 recordsStart with requested columns and apply WHERE and ORDER BY.

Select named columns or use * for all fields. Apply a WHERE condition to restrict matching records, and use ORDER BY to control the result order. This example returns the first three EUR accounts:

SELECT TOP 3 _ID, CUSTOMER, CATEGORY, CURRENCY
FROM F.ACCOUNT
WHERE CURRENCY = 'EUR'
ORDER BY _ID

Use the table and field names exposed by your environment. The company setting determines the company used for company-dependent tables.

Filter and aggregate with nested queriesUse an outer query to process rows retrieved by an inner T24 selection.

In the documented nested-query pattern, the inner query retrieves T24 data and the outer query processes its result on the Data Access Server. Put applicable record-selection filters in the inner query to reduce the data transferred from T24.

The guide's grouping example sums balances and counts non-null balance values by currency:

SELECT CURRENCY, SUM(WORKING_BALANCE) AS WB_SUM,
       COUNT(WORKING_BALANCE) AS WB_CNT
FROM (SELECT CURRENCY, WORKING_BALANCE FROM <account_table>)
GROUP BY CURRENCY
ORDER BY WB_CNT DESC

Replace <account_table> with the correct environment table. The source uses FBNK_ACCOUNT.

T24 fields

Expand values and subvalues into rowsChoose EX or EX2 and optionally include value indexes.

Without expansion, multivalue fields are returned as delimiter-separated strings. [EX] expands values into rows; single-value fields repeat, and subvalues remain delimited. [EX2] expands subvalues; fields without subvalues repeat.

SELECT _ID, FINAL_DUE_DATE, PAYMENT_DTE_DUE[EX],
       PAY_TYPE[EX2], PAY_AMT_ORIG[EX2]
FROM <payment_due_table>

Use [VN] and [SN] to include value and subvalue numbers. For a single position, use [<vn>] or [<vn>, <sn>]. For example, PAY_AMT_ORIG[3, 4] selects the fourth subvalue of the third value.

SELECT _ID, PAY_AMT_ORIG, PAY_AMT_ORIG[3, 4]
FROM <payment_due_table>
WHERE _ID = '<record_id>'

Replace the table and record placeholders. The source payment table is FBNK_PD_PAYMENT_DUE; no source record ID is reproduced here.

Search, filter, and group multivalue dataSearch source values or filter and aggregate expanded rows.

For a source multivalue search, the guide applies a WHERE condition directly to the multivalue field:

SELECT _ID, CURRENCY, LOCAL_REF[EX]
FROM <money_market_table>
WHERE LOCAL_REF = '<reference_value>'

To filter individual expanded values, expand in an inner query and filter in the outer query. This pattern also converts the amount to a numeric type:

SELECT *
FROM (SELECT _ID, PAYMENT_DTE_DUE[EX, D], PAY_TYPE[EX2],
             PAY_AMT_ORIG[EX2,F] FROM <payment_due_table>)
WHERE PAY_TYPE = 'PR' AND PAY_AMT_ORIG > 10000
ORDER BY PAY_AMT_ORIG DESC

For totals by expanded payment type, use:

SELECT PAY_TYPE, SUM(PAY_AMT_ORIG) AS PAY_AMT_ORIG_SUM
FROM (SELECT PAY_TYPE[EX2], PAY_AMT_ORIG[EX2,F]
      FROM <payment_due_table>)
WHERE PAY_TYPE <> ''
GROUP BY PAY_TYPE
ORDER BY PAY_TYPE

Replace table and reference placeholders. The source uses FBNK_MM_MONEY_MARKET and FBNK_PD_PAYMENT_DUE.

Convert field types and increase returned text lengthApply documented conversion operands, including combinations with expansion.

The driver recognizes T24 types including IN2CUS, IN2YM, IN2ACC, IN2CAT, IN2D, IN2AMT, IN2DEC, and IN2R. The guide says other types are treated as VARCHAR. Apply a conversion operand when needed:

  • CATEGORY[I]: integer.
  • ACCR_CHG_AMOUNT[F]: floating point.
  • CAP_DATE_CHARGE[D]: date.
  • DATE_TIME[D.YYMMDDHHNN]: date and time using that format.
  • MNEMONIC[C.100]: returned character length of 100 when the STANDARD.SELECTION length is insufficient.
  • PAYMENT_DTE_DUE[EX, D]: multivalue expansion plus date conversion.

For example:

SELECT _ID, CATEGORY, CATEGORY[I] AS CATEG_INT
FROM <account_table>

These are the guide's documented expressions. Replace <account_table> with your exposed table name; its source example uses FBNK_ACCOUNT.

Query local fields by nameSelect, filter, and expand fields defined in LOCAL.TABLE.

Select local fields like other table fields. They can be used in WHERE conditions and expanded with the normal multivalue operands.

SELECT _ID, CURRENCY, SY_UNIT
FROM <money_market_table>
WHERE SY_UNIT = '<local_field_value>'

For multivalue local fields:

SELECT _ID, SY_ID[EX], SY_UNIT[EX], SYEXVAL[EX]
FROM <money_market_table>

The guide's example defines SY_ID, SY_UNIT, and SYEXVAL in LOCAL.TABLE for FBNK_MM_MONEY_MARKET. These are example local field names; use the names defined in your own environment. Replace all angle-bracket placeholders before execution.

TAFC extensions

Use linked fields and jBASE EVALRetrieve a related field or evaluate a jBASE I-TYPE expression through TAFC.

These extensions are documented for TAFC connectors.

A linked field has the syntax source_field > dest_file > dest_field. The source field contains the destination record ID. The manual demonstrates:

SELECT _ID, CURRENCY, CUSTOMER, CUSTOMER>F_CUSTOMER>SHORT_NAME
FROM FBNK_ACCOUNT

FBNK_ACCOUNT and F_CUSTOMER are the manual's source identifiers; use the corresponding exposed files in your environment. They are retained here because the example demonstrates the complete linked-field syntax.

EVAL(eval_expression) evaluates a jBASE I-TYPE expression in a select expression or WHERE condition. Its date example includes:

SELECT _ID, OPENING_DATE,
       EVAL(OPENING.DATE[1, 4]) AS YEAR,
       EVAL(OCONV(ICONV(OPENING.DATE, "DG"), "D")) AS LONG_DATE
FROM <account_table>

Note the source's distinction between the SQL field OPENING_DATE and jBASE expression field OPENING.DATE. Compare direct fields and UDFs with EVAL when query speed matters; no fixed performance improvement is promised.

Call or deploy a user-defined functionUse a supplied TAFC UDF or create a jBC routine with the required interface.

TAFC queries call UDFs with an @ prefix. The supplied opening-balance example has this shape:

SELECT _ID, WORKING_BALANCE,
       @UDF.AC.OPEN.BAL('<YYYYMMDD>') AS BAL_YEAR
FROM <account_table>

Replace the date and table placeholders. The source routine is supplied in bnk.run/T24DAC.BP.

A UDF accepts PARAMS, RESULT, ID.REC, and R.REC. When PARAMS<1> is TYPE, return the result type in RESULT: F, I, D, or a character type such as C.128. Query arguments are in PARAMS<2, 1..N>; ID.REC and R.REC identify and contain the current record.

To deploy a UDF, create, compile, and catalogue the jBC subroutine, restart t24client.jar, then call it from a query. Restart t24client.jar after every UDF change.

Query stored procedures and booking-date indexesTreat a TAFC stored procedure as a virtual table.

The supplied procedure below exposes ACCOUNT field metadata:

SELECT *
FROM @SP.TABLE.FIELDS('ACCOUNT')
ORDER BY FIELD_NAME

Stored procedures accept PARAMS, RESULT, and ID.REC. PARAMS<1> selects the operation: FIELDS returns names and types in <field name>;<type> form, PREPARE returns IDs, and SELECT processes the supplied ID. Query arguments are in PARAMS<2, 1..N>.

Create, compile, and catalogue a procedure with that interface, then restart t24client.jar. Restart it after every procedure change. Supplied source is in bnk.run/T24DAC.BP.

The supplied concat-index helpers are IDX.SE.BOOK.DATE for STMT.ENTRY, IDX.CE.BOOK.DATE for CATEG.ENTRY, and IDX.RCSE.BOOK.DATE for RE.CONSOL.SPEC.ENTRY. The documented last-working-day call is:

SELECT *
FROM @IDX.SE.BOOK.DATE (LWORK)

These features are documented for TAFC, not as universal direct-connector functionality.

Operations

Find logs and choose a diagnostic levelConfigure LogDir and LogLevel for focused troubleshooting.

LogDir controls the log folder. The installation setting LogDir=logs is relative to the configuration directory, normally C:\ProgramData\Vultar, so the usual folder is C:\ProgramData\Vultar\logs.

LogDir=logs
LogLevel=2
  • 0: disabled.
  • 1: errors.
  • 2: warnings and general job statistics; the installation default.
  • 3: technical job details, including SELECT statements.
  • 5: communications between the server and T24.

Use higher levels for focused troubleshooting because additional logging can affect performance.

Resolve an unable-to-open-result-database errorCheck access to the configured temporary result folder.

The documented cause is that the service account cannot create or access the result database in the configured temporary folder.

  1. Identify the account running T24DataAccess and the configured result folder.
  2. Ensure that account can read, create, modify, and delete files there.
  3. Alternatively, choose a dedicated folder with Temp in config.ini and give the required access to the service account and any local result-file consumers.
Temp=D:\temp

Use a folder appropriate to your installation. The guide recommends avoiding unnecessary access grants to all users. Verify the changed setting before relying on it.

Resolve jBC compilation failures at startupSet the include folder or compile the data-module sources manually.

If the include directory is not detected, set T24.Include.Dir in t24client.properties to the correct include folder. The guide's example is:

T24.Include.Dir=../T24_BP

If compilation fails for another reason, set the following property and manually compile the jBC sources in T24DAC.BP:

Recompile=false

Review the compiler output to identify the actual compilation problem. The relative include path is an example and must match the deployment.

Tune processing capacity and understand retry limitsDistinguish selection workers, processors, temporary storage, and the documented memory setting.

SPU in config.ini configures selection-worker capacity within the licence limit; that capacity is shared by concurrent jobs. ProcessorCount configures workers that parse and expand records and defaults to the number of CPU cores. More workers help only when the corresponding stage is a bottleneck.

The server stores results in temporary files. Review storage capacity and performance, and use Temp to choose their location. The supplied SpeedTest.exe uses these SpeedTest.ini parameters: TestTable, TestRecordCount, TestMinSPU, SPUStep, and RecordCountStep. Choose values appropriate to the test environment and review the resulting statistics; the guide supplies no universally optimal values.

For Oracle Direct, RetryCount controls retries for ORA-03113 and ORA-12514; its documented default is 3. Errors propagate to the client when retries are exhausted.

In the 32-bit build, MaxRAM defaults to 2000 MB and is constrained to 500-2000 MB for the described provider wait. That wait is excluded from the 64-bit build. MaxRAM is not a general hard memory cap.

Based on the Vultar T24 Data Access Components Developer and administrator guide, revised 24 September 2026. Replace example hosts, paths and values with those for your environment. For help with your release, contact Vultar Systems.