///Start new transaction of module if it is possible
        ///<param name="aOID">Module's OID</param>
        public BTransactionItem Start(string aOID)
        {
            if (transactions.Count == transactionsCapacity) throw new Exception ("Maximum running transactions reached!");

            // get instance of module
            BModuleItem module = modManager[aOID];
            if (module == null) throw new Exception("Module with OID " + aOID + " not found.");

            // read configuration from module
            XmlNode config;
            try
            {
              config = module.GetConfig().GetXmlNode("/beline/conf/module/configuration");
              // if this is not Xml element, configuration file is bad
              if (config.NodeType != XmlNodeType.Element) throw new Exception();
            }
            catch (Exception)
            {
              throw new Exception("Error in configuration file. It does't contain \"/beline/conf/module/configuration\" branch");
            }

            ArrayList configItems = new ArrayList(config.ChildNodes.Count);
            foreach (XmlNode element in config.ChildNodes)
            {
              // if another child than element "bcfgitem" do not parse him
            if (element.NodeType != XmlNodeType.Element || element.LocalName != "bcfgitem") continue;

            BValueType hodnota = BValueType.Deserialize(element.FirstChild);
            if (hodnota != null) configItems.Add(hodnota);
            }

            BValueType[] configArray = new BValueType[configItems.Count];
            configItems.CopyTo(configArray);

            // create transaction
            BTransactionItem transaction = new BTransactionItem(module, configArray);

            // save transaction to inner ArrayList
            transactions.Add(transaction.OID, transaction);

            return transaction;
        }
        // Return array of all transactions
        public BTransactionItem[] GetAllTransactions()
        {
            BTransactionItem[] retval = new BTransactionItem[transactions.Count];
              int i=0;
              foreach (DictionaryEntry transaction in transactions)
              {
            retval[i++] = (BTransactionItem)transaction.Value;
              }
              //transactions.CopyTo(retval, 0);

              return retval;
        }