A session object is used to execute queries and maintains cluster state through the control connection. The control connection is used to auto-discover nodes and monitor cluster changes (topology and schema). Each session also maintains multiple pools of connections to cluster nodes which are used to query the cluster.

Instances of the session object are thread-safe to execute queries.

Functions

CassSession *

cass_session_new

( )

Creates a new session.

Returns:
Type Details
CassSession *

Returns a session that must be freed.

See Also:
void

cass_session_free

( session )

Frees a session instance. If the session is still connected it will be synchronously closed before being deallocated.

Important: Do not free a session in a future callback. Freeing a session in a future callback will cause a deadlock.

Parameters:
Name Type Details
in session
CassFuture *

cass_session_connect

( session, cluster )

Connects a session.

Parameters:
Name Type Details
in session
in cluster

The cluster configuration is copied into the session and is immutable after connection.

Returns:
Type Details
CassFuture *

A future that must be freed.

See Also:
CassFuture *

cass_session_connect_keyspace

( session, cluster, keyspace )

Connects a session and sets the keyspace.

Parameters:
Name Type Details
in session
in cluster

The cluster configuration is copied into the session and is immutable after connection.

in keyspace
Returns:
Type Details
CassFuture *

A future that must be freed.

See Also:
CassFuture *

cass_session_connect_keyspace_n

( session, cluster, keyspace, keyspace_length )

Same as CassSession::cass_session_connect_keyspace, but with lengths for string parameters.

Parameters:
Name Type Details
in session
in cluster
in keyspace
in keyspace_length
Returns:
Type Details
CassFuture *

same as CassSession::cass_session_connect_keyspace

See Also:
CassFuture *

cass_session_close

( session )

Closes the session instance, outputs a close future which can be used to determine when the session has been terminated. This allows in-flight requests to finish.

Parameters:
Name Type Details
in session
Returns:
Type Details
CassFuture *

A future that must be freed.

CassFuture *

cass_session_prepare

( session, query )

Create a prepared statement.

Parameters:
Name Type Details
in session
in query

The query is copied into the statement object; the memory pointed to by this parameter can be freed after this call.

Returns:
Type Details
CassFuture *

A future that must be freed.

See Also:
CassFuture *

cass_session_prepare_n

( session, query, query_length )

Same as CassSession::cass_session_prepare, but with lengths for string parameters.

Parameters:
Name Type Details
in session
in query
in query_length
Returns:
Type Details
CassFuture *

same as CassSession::cass_session_prepare

See Also:
CassFuture *

cass_session_execute

( session, statement )

Execute a query or bound statement.

Parameters:
Name Type Details
in session
in statement
Returns:
Type Details
CassFuture *

A future that must be freed.

See Also:
CassFuture *

cass_session_execute_batch

( session, batch )

Execute a batch statement.

Requires Cassandra: 2.0+

Parameters:
Name Type Details
in session
in batch
Returns:
Type Details
CassFuture *

A future that must be freed.

See Also:
const CassSchemaMeta *

cass_session_get_schema_meta

( session )

Gets a snapshot of this session’s schema metadata. The returned snapshot of the schema metadata is not updated. This function must be called again to retrieve any schema changes since the previous call.

Parameters:
Name Type Details
in session
Returns:
Type Details
const CassSchemaMeta *

A schema instance that must be freed.

See Also:
  • cass_schema_free()
void

cass_session_get_metrics

( session, output )

Gets a copy of this session’s performance/diagnostic metrics.

Parameters:
Name Type Details
in session
out output
See Also:
  • cass_schema_free()