Example #1
0
        public void DatabaseShutdown2(FbShutdownOnlineMode mode, FbShutdownType type, int seconds)
        {
            StartSpb = new ServiceParameterBuffer();
            StartSpb.Append(IscCodes.isc_action_svc_properties);
            StartSpb.Append(IscCodes.isc_spb_dbname, Database);
            StartSpb.Append(IscCodes.isc_spb_prp_shutdown_mode, FbShutdownOnlineModeToIscCode(mode));
            switch (type)
            {
            case FbShutdownType.ForceShutdown:
                StartSpb.Append(IscCodes.isc_spb_prp_force_shutdown, seconds);
                break;

            case FbShutdownType.AttachmentsShutdown:
                StartSpb.Append(IscCodes.isc_spb_prp_attachments_shutdown, seconds);
                break;

            case FbShutdownType.TransactionsShutdown:
                StartSpb.Append(IscCodes.isc_spb_prp_transactions_shutdown, seconds);
                break;
            }

            Open();
            StartTask();
            Close();
        }
Example #2
0
    public async Task DatabaseShutdown2Async(FbShutdownOnlineMode mode, FbShutdownType type, int seconds, CancellationToken cancellationToken = default)
    {
        EnsureDatabase();

        await OpenAsync(cancellationToken).ConfigureAwait(false);

        var startSpb = new ServiceParameterBuffer2();

        startSpb.Append(IscCodes.isc_action_svc_properties);
        startSpb.Append2(IscCodes.isc_spb_dbname, Database, SpbFilenameEncoding);
        startSpb.Append(IscCodes.isc_spb_prp_shutdown_mode, FbShutdownOnlineModeToIscCode(mode));
        switch (type)
        {
        case FbShutdownType.ForceShutdown:
            startSpb.Append(IscCodes.isc_spb_prp_force_shutdown, seconds);
            break;

        case FbShutdownType.AttachmentsShutdown:
            startSpb.Append(IscCodes.isc_spb_prp_attachments_shutdown, seconds);
            break;

        case FbShutdownType.TransactionsShutdown:
            startSpb.Append(IscCodes.isc_spb_prp_transactions_shutdown, seconds);
            break;
        }
        await StartTaskAsync(startSpb, cancellationToken).ConfigureAwait(false);
        await CloseAsync(cancellationToken).ConfigureAwait(false);
    }
        private async Task DatabaseShutdown2Impl(FbShutdownOnlineMode mode, FbShutdownType type, int seconds, AsyncWrappingCommonArgs async)
        {
            EnsureDatabase();

            await Open(async).ConfigureAwait(false);

            var startSpb = new ServiceParameterBuffer();

            startSpb.Append(IscCodes.isc_action_svc_properties);
            startSpb.Append(IscCodes.isc_spb_dbname, Database, SpbFilenameEncoding);
            startSpb.Append(IscCodes.isc_spb_prp_shutdown_mode, FbShutdownOnlineModeToIscCode(mode));
            switch (type)
            {
            case FbShutdownType.ForceShutdown:
                startSpb.Append(IscCodes.isc_spb_prp_force_shutdown, seconds);
                break;

            case FbShutdownType.AttachmentsShutdown:
                startSpb.Append(IscCodes.isc_spb_prp_attachments_shutdown, seconds);
                break;

            case FbShutdownType.TransactionsShutdown:
                startSpb.Append(IscCodes.isc_spb_prp_transactions_shutdown, seconds);
                break;
            }
            await StartTask(startSpb, async).ConfigureAwait(false);
            await Close(async).ConfigureAwait(false);
        }
 public Task DatabaseShutdown2Async(FbShutdownOnlineMode mode, FbShutdownType type, int seconds, CancellationToken cancellationToken = default) => DatabaseShutdown2Impl(mode, type, seconds, new AsyncWrappingCommonArgs(true, cancellationToken));
 public void DatabaseShutdown2(FbShutdownOnlineMode mode, FbShutdownType type, int seconds) => DatabaseShutdown2Impl(mode, type, seconds, new AsyncWrappingCommonArgs(false)).GetAwaiter().GetResult();
		public void DatabaseShutdown2(FbShutdownOnlineMode mode, FbShutdownType type, int seconds)
		{
			StartSpb = new ServiceParameterBuffer();

			StartSpb.Append(IscCodes.isc_action_svc_properties);
			StartSpb.Append(IscCodes.isc_spb_dbname, Database);

			StartSpb.Append(IscCodes.isc_spb_prp_shutdown_mode, FbShutdownOnlineModeToIscCode(mode));

			switch (type)
			{
				case FbShutdownType.ForceShutdown:
					StartSpb.Append(IscCodes.isc_spb_prp_force_shutdown, seconds);
					break;

				case FbShutdownType.AttachmentsShutdown:
					StartSpb.Append(IscCodes.isc_spb_prp_attachments_shutdown, seconds);
					break;

				case FbShutdownType.TransactionsShutdown:
					StartSpb.Append(IscCodes.isc_spb_prp_transactions_shutdown, seconds);
					break;
			}

			Open();

			StartTask();

			Close();
		}