type=page
status=published
title=create-context-service
next=create-custom-resource.html
prev=create-connector-work-security-map.html
~~~~~~
create-context-service
======================

[[create-context-service-1]][[GSRFM838]][[create-context-service]]

create-context-service
----------------------

creates a context service resource

[[sthref192]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] create-context-service [--help]
[--enabled={false|true}]
[--contextinfoenabled={false|true}]
[--contextinfo={Classloader|JNDI|Security|WorkArea}]]
[--description description]
[--property property]
[--target target]
jndi_name
----

[[sthref193]]

Description

The `create-context-service` subcommand creates a context service
resource.

This subcommand is supported in remote mode only.

[[sthref194]]

Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--enabled`::
  Determines whether the resource is enabled at runtime. The default
  value is `true`.
`--contextinfoenabled`::
  Determines whether container contexts are propagated to threads. If
  set to `true`, the contexts specified in the `--contextinfo` option
  are propagated. If set to `false`, no contexts are propagated and the
  `--contextinfo` option is ignored. The default value is `true`.
`--contextinfo`::
  Specifies individual container contexts to propagate to threads. Valid
  values are Classloader, JNDI, Security, and WorkArea. Values are
  specified in a comma-separated list and are case-insensitive. All
  contexts are propagated by default.
`--description`::
  Descriptive details about the resource.
`--property`::
  Optional attribute name/value pairs for configuring the resource. +
  \{product---name} does not define any additional properties for this
  resource. Moreover, this resource does not currently use any
  additional properties.
`--target`::
  Specifies the target for which you are creating the resource. Valid
  targets are: +
  `server`;;
    Creates the resource for the default server instance. This is the
    default value.
  `domain`;;
    Creates the resource for the domain.
  cluster_name;;
    Creates the resource for every server instance in the specified
    cluster.
  instance_name;;
    Creates the resource for the specified server instance.

[[sthref195]]

Operands

jndi_name::
  The JNDI name of this resource.

[[sthref196]]

Examples

[[GSRFM839]][[sthref197]]

Example 1   Creating a Context Service Resource

This example creates a context service resource named
`concurrent/myContextService`.

[source,oac_no_warn]
----
asadmin> create-context-service concurrent/myContextService
Context service concurrent/myContextService created successfully.
Command create-context-service executed successfully.
----

[[sthref198]]

Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref199]]

See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:delete-context-service.html#delete-context-service-1[`delete-context-service`(1)],
link:list-context-services.html#list-context-services-1[`list-context-services`(1)]


