# The NsSample sample program

The `NsSample` demonstration program is a simple JDBC application that interacts with the Network Server.

The `NsSample` program performs the following tasks:

- Starts the Network Server.
- Checks that the Network Server is running.
- Creates the `NsSampledb` database if it has not already been created.
- Checks to see if the schema is already created, and if not, creates the schema, which includes the SAMPLETBL table and corresponding indexes.
- Connects to the database.
- Loads the schema by inserting data.
- Starts client threads to perform database related operations.
- Has each of the clients perform DML operations (select, insert, delete, update) using JDBC calls. For example, one client thread establishes an embedded connection to perform database operations, while another client thread establishes a client connection to the Network Server to perform database operations.
- Waits for the client threads to finish the tasks.
- Shuts down the Network Server at the end of the demonstration.

You must install the following files in the `%DERBY_HOME%\demo\nserverdemo\` directory before you can run the sample program:

- `NsSample.java`

  This is the entry point into the sample program. The program starts up two client threads. The first client establishes an embedded connection to perform database operations, and the second client establishes a client connection to the Network Server to perform database operations.

  You can change the following constants to modify the sample program:

  NUM_ROWS
    The number of rows that must be initially loaded into the schema.
  ITERATIONS
    The number of iterations for which each client thread does database related work.
  NUM_CLIENT_THREADS
    The number of clients that you want to run the program against.
  NETWORKSERVER_PORT
    The port on which the Network Server is running.
- `NsSampleClientThread.java`
  This file contains two Java classes:
  - The `NsSampleClientThread` class extends `Thread` and instantiates a `NsSampleWork` instance.
  - The `NsSampleWork` class contains everything that is required to perform DML operations using JDBC calls. The `doWork` method in the `NsSampleWork` class represents all the work done as part of this sample program.
- `NetworkServerUtil.java`

  This file contains helper methods to start the Network Server and to shut down the server.

The compiled class files for the `NsSample` program are:

- `NsSample.class`
- `NsSampleClientThread.class`
- `NsSampleWork.class`
- `NetworkServerUtil.class`

- Running the NsSample sample program
  To run the NsSample program, follow these steps.

Parent topic: Derby Network Server sample programs
Related concepts
Network Server sample programs for embedded and client connections