=head1 NAME

vos_endtrans - Ends a volserver transaction

=head1 SYNOPSIS

=for html
<div class="synopsis">

B<vos endtrans> S<<< B<-server> <I<machine name>> >>>
    S<<< B<-transaction> <I<transaction iD>> >>>
    S<<< [B<-cell> <I<cell name>>] >>>
    [B<-noauth>] [B<-localauth>]
    [B<-verbose>] [B<-encrypt>] [B<-noresolve>]
    S<<< [B<-config> <I<config directory>>] >>>
    [B<-help>]

B<vos st> S<<< B<-s> <I<machine name>> >>>
    S<<< B<-t> <I<transaction iD>> >>>
    S<<< [B<-c> <I<cell name>>] >>>
    [B<-noa>] [B<-l>] [B<-v>] [B<-e>] [B<-nor>]
    S<<< [B<-co> <I<config directory>>] >>>
    [B<-h>]

=for html
</div>

=head1 DESCRIPTION

The B<vos endtrans> command ends a specific transaction on the Volume
Server for a specific volume. Under normal operation this command should
never need to be used, but it can be useful to reduce the amount of time
a volume is offline after an accidental command, or a L<B<vos>|vos(1)>
process crash.

Many L<B<vos>|vos(1)> commands, when they interact with a volume, create
what is called a transaction in order to perform many different
operations on a volume. If the L<B<vos>|vos(1)> process exits uncleanly,
transactions may still stay open for the manipulated volumes, and the
Volume Server may deny any further operations on those volumes while the
transactions are still open. B<vos endtrans> allows you to end these
transactions and make the volumes usable again without needing to
restart the volserver.

To find out what transactions are running on a Volume Server and what
their transaction IDs are, see the L<B<vos status>|vos_status(1)>
command.

=head1 CAUTIONS

This command is not used during normal OpenAFS administration. If used
improperly, this can negatively impact currently-running
L<B<vos>|vos(1)> operations. Only run this on a transaction if you are
certain that the program that created the transaction is no longer
running.

=head1 OPTIONS

=over 4

=item B<-server> <I<server name>>

Identifies the file server machine running the Volume Server on which to
end the transaction. Provide the machine's IP address or its host name
(either fully qualified or using an unambiguous abbreviation). For
details, see L<vos(1)>.

=item B<-transaction> <I<transaction ID>>

Identifies which transaction to end on the Volume Server. You can get a
listing of active transactions and their IDs from the output of
L<B<vos status>|vos_status(1)>.

=item B<-cell> <I<cell name>>

Names the cell in which to run the command. Do not combine this argument
with the B<-localauth> flag. For more details, see L<vos(1)>.

=item B<-noauth>

Assigns the unprivileged identity C<anonymous> to the issuer. Do not
combine this flag with the B<-localauth> flag. For more details, see
L<vos(1)>.

=item B<-localauth>

Constructs a server ticket using a key from the local
F</usr/afs/etc/KeyFile> file. The B<vos> command interpreter presents it
to the Volume Server and Volume Location Server during mutual
authentication. Do not combine this flag with the B<-cell> argument or
B<-noauth> flag. For more details, see L<vos(1)>.

=item B<-verbose>

Produces on the standard output stream a detailed trace of the command's
execution. If this argument is omitted, only warnings and error messages
appear.

=item B<-encrypt>

Encrypts the command so that the operation's results are not transmitted
across the network in clear text. This option is available in OpenAFS
versions 1.4.11 or later and 1.5.60 or later.

=item B<-noresolve>

Shows all servers as IP addresses instead of the DNS name. This is very
useful when the server address is registered as 127.0.0.1 or when dealing
with multi-homed servers. This option is available in OpenAFS
versions 1.4.8 or later and 1.5.35 or later.

=item B<-config> <I<configuration directory>>

Set the location of the configuration directory to be used. This defaults to
F</usr/vice/etc>, except if B<-localauth> is specified, in which case the
default is F</usr/afs/etc>. This option allows the use of alternative
configuration locations for testing purposes.

=item B<-help>

Prints the online help for this command. All other valid options are
ignored.

=back

=head1 EXAMPLES

The following example illustrates the kind of output that can appear
when a volume operation was about to be attempted on the Volume Server
on C<fs1.example.com>, but the process performing the operation never
actually did anything with the volume:

   % vos status fs1.example.com
   --------------------------------------------
   transaction: 575  created: Fri Oct 16 16:55:54 2009
   attachFlags: offline
   volume: 536871080 partition: /vicepb procedure: TransCreate
   --------------------------------------------
   % vos endtrans fs1.example.com 575
   % vos status fs1.example.com
   No active transactions on fs1.example.com

=head1 PRIVILEGE REQUIRED

The issuer must be listed in the F</usr/afs/etc/UserList> file on the
machine specified with the B<-server> argument. If the B<-localauth>
flag is included, the issuer must instead be logged on to a server
machine as the local superuser C<root>.

=head1 SEE ALSO

L<vos(1)>,
L<vos_status(1)>

=head1 COPYRIGHT

Copyright 2009 Sine Nomine Associates

This documentation is covered by the BSD License as written in the
doc/LICENSE file. This man page was written by Andrew Deason for
OpenAFS.
