Book Home


Installation Guide
Quick Start & Tours
Sample ODBC & JDBC Applications
Conceptual Overview
Data Access Interfaces
Virtual Database Engine
SQL Reference
Virtuoso Cluster Programming
SQL Procedure Language Guide
Database Event Hooks
Data Replication, Synchronization and Transformation Services
Web Application Development
XML Support
RDF Data Access and Data Management
Web Services
Runtime Hosting
Runtime Environments
CLR, .Net & ASPX Host
CLR & Mono
Embedded Java VM API
Virtuoso Server Extension Interface (VSEI) (C Interface)
VSEI Plugins
Internet Services
Free Text Search
TPC C Benchmark Kit
Using Virtuoso with Tuxedo
Virtuoso Functions Guide


Virtuoso can be extended by in-process hosting of a number of different run time environments. This includes: Microsoft's .NET CLR (CLR), the Mono ECMA-CLI (Mono), and the Java Virtual Machine (JVM). Thus, you can create persistent stored modules, SQL functions, and user defined data types using any Microsoft .NET or Mono bound language, Java, and traditional languages such as 'C'/C++.

Objects provided by hosted run times, such as Java and CLR can be directly and transparently accessed from SQL. This also means that application logic in any hosted language can be exposed as a web service. By offering a choice of hosted run times in a cross platform setting, Virtuoso adds a new degree of freedom for the application designer. Applications can now be developed and deployed on either Windows, Linux or Unix, can be written in Java or any .net CLR bound language and can talk to any database via Virtuoso's virtual databasing capabilities.

The Virtuoso Server Extension Interface (VSEI) provides C interfaces and hooks that enable developers to write external functionality that can be bolted on the side of Virtuoso and called as SQL functions.

Table of Contents

18.1. Runtime Environments
18.2. CLR, .Net & ASPX Host
18.2.1. Environment Setup
18.2.2. Testing the Virtuoso .NET Runtime Environment
18.3. CLR & Mono
18.3.1. Environment Setup
18.3.2. Testing the Virtuoso Mono Runtime Environment
18.4. Embedded Java VM API
18.4.1. Correspondence Between Virtuoso & Java VM Threads
18.4.2. Virtuoso/PL <-> Java VM Type Mapping Schema
18.4.3. References to Java VM Class Instances in Virtuoso/PL
18.4.4. Specifying the Correct Java Type When Passing Values from Virtuoso/PL
18.4.5. Virtuoso Java PL API VSEs
18.4.6. Java Security
18.5. Virtuoso Server Extension Interface (VSEI) (C Interface)
18.5.1. Virtuoso Server Extension Interface (VSEI)
18.5.2. SQL Run Time Objects
18.5.3. Memory Management Rules
18.5.4. Server Main Function
18.5.5. Compiling & Linking
18.5.6. Functions by Category
18.5.7. VSEI Definition
18.5.8. SQL Exceptions
18.5.9. Executing SQL
18.5.10. Adding New Languages And Encodings Into Virtuoso
18.6. VSEI Plugins