In-process vs. Out-of-process Adapters

An adapter can run as either a separate process or as part of the Sybase CEP Server. An adapter that runs as a separate process is called an Out-of-process adapter. An adapter that runs as part of the server is called an In-process adapter.

Note: Out-of-process adapters were previously called "Unmanaged adapters", and In-process adapters were previously called "Managed adapters"; you may still see those terms used occasionally.

In-process adapters generally run faster because the server can get data from (or to) the adapter with less overhead. In-process adapters are started by the Sybase CEP Server when the server starts the corresponding project (query module). The adapter is recognized by Sybase CEP Studio, and from inside Sybase CEP Studio you may attach the adapter to a stream by selecting the adapter from a drop-down list of adapters. A disadvantage of in-process adapters is that if the adapter crashes, it will probably bring down Sybase CEP Server.

Out-of-process adapters deliver rows more slowly than in-process adapters do, are not recognized by Sybase CEP Studio, and must be started manually (rather than by the server), but are safer because an error that causes the adapter to crash will not take down Sybase CEP Server with it. Out-of-process adapters can run on a different computer from the computer that the server runs on.

Currently, in-process adapters can be written only in C/C++. You can write out-of-process adapters in other languages, as well as C/C++.

 

In-Process Adapter

Out-of-Process Adapter

Speed of row delivery

Generally faster because the server can get data to and from the adapter with less overhead.

Generally slower.

Started by

Server

User

Recognized by Sybase CEP Studio

Yes

No

Can a crash in the adapter cause Sybase CEP Server to crash

Yes

No

Can run on a different computer than Sybase CEP Server

No

Yes

Languages

C/C++

C/C++

Java 1.5

.NET3

Python

Perl