ORA-00054: ресурс занят и получен с указанным значением NOWAIT или истек тайм-аут соединения. - PullRequest
0 голосов
/ 27 февраля 2020
Query : "SELECT * FROM basictasks WHERE STATUS = 1 and rownum = 1 order by TASKID for update nowait" 

octTransaction.Commit();
octTransaction.Dispose();
 Tasks tasks = new Tasks();
               DataLayer datalayer = new DataLayer();
               datalayer = Login.objDataLayer;
               OracleCommand ocdSelect = new OracleCommand();
               datalayer.BeginTransaction();
               Sqlquery = "SELECT * FROM basictasks WHERE STATUS = 1 and rownum = 1 order by TASKID for update nowait ";
               ocdSelect.CommandText = Sqlquery;

               DataTable dt = datalayer.GetResultDT(ocdSelect, false);
               if (dt.Rows.Count > 0)
               {
                   tasks.TaskID = Convert.ToInt32(dt.Rows[0]["TASKID"]);
                   tasks.MechineName = dt.Rows[0]["MACHINENAME"].ToString();
                   tasks.Parameters = dt.Rows[0]["PARAMETERS"].ToString();
                   tasks.TaskName = dt.Rows[0]["TASKNAME"].ToString();
                   tasks.Description = dt.Rows[0]["DESCRIPTION"].ToString();
                   tasks.Status = 2;
                   tasks.StartTime = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt");
                   tasks.FinishJob = false;
                   Sqlquery = "UPDATE basictasks SET STATUS = " + tasks.Status + ", STARTTIME = SYSDATE,MACHINENAME = '" + Common.MechineName + "',REMARK = ' ',ENDTIME = null WHERE TASKID = " + tasks.TaskID + "";
                   datalayer.TableOperation_BySQL(Sqlquery, true);
                   if (datalayer != null)
                       datalayer.CheckTransaction(true);
                   return tasks;
               }

               else
               {
                   if (datalayer != null)
                       datalayer.CheckTransaction(true);
               }
           }

один раз закройте соединение и снова откройте соединение, затем работайте. но я не хочу, чтобы он открывал и закрывал соединение каждый раз. Я хочу использовать одно соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...