Серверный JavaScript 1.4. Руководство по использованию


         

Если соединение null, тогда ничего


      // Если соединение null, тогда ничего не будет доступно       // в течение специфицированного лимита времени. Пытаемся запросить старые соединения.
      if (connection == null) {

         // Запрашиваются соединения, не используемые в течение последних 10 минут.

var count = RetrieveConnections(project.sharedConns.connections, 10);

         // Если count не равен 0, делаем какое-нибудь соединение доступным.

if (count != 0){

connection = pool.connection("my connection", 30);

    // Если connection всё ещё null, отказываемся.

      if (connection == null)

        redirect("nofreeconnections.htm");

      }
         else {

            // Отказываемся.

         redirect("nofreeconnections.htm");

       }}

      // Если Вы не дошли досюда, Вы получили соединение и можете продолжить работу.
      // Поместите это connection в новый bucket, стартуйте транзакцию,
      // получайте курсор, сохраняйте его в bucket и продолжайте работу.
      project.sharedConns.connections[client.id] =         new Bucket(connection);

 connection.beginTransaction();

project.sharedConns.connections[client.id].cursor =

connection.cursor("select * from customer", true);      // Помечаем bucket соединения как использованный.

      MarkBucket(project.sharedConns.connections[client.id]);

   // Операторы Базы Данных.
   ...
}

На следующей странице многостраничной транзакции выполняются операции БД по этому соединению. После последней операции БД по соединению помечается bucket соединения:

var Bucket = project.sharedConns.connections[client.id];

if ( Bucket == null) {
   // Повторное соединение.
}else {

   // Взаимодействие с БД.

...   // Последняя операция БД на странице.

   row = Bucket.cursor.next();
   row.customerid = 666;

 Bucket.openCursor.insertRow("customer");   // Помечается bucket соединения как использованный на данной странице.
   MarkBucket(Bucket);
}


Содержание  Назад  Вперед