public class SecurityManager extends Object
The SecurityManager
class contains many methods with
names that begin with the word check
. These methods
are called by various methods in the Java libraries before those
methods perform certain potentially sensitive operations. The
invocation of such a check
method typically looks like this:
SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkXXX(argument, . . . ); }
The security manager is thereby given an opportunity to prevent
completion of the operation by throwing an exception. A security
manager routine simply returns if the operation is permitted, but
throws a SecurityException
if the operation is not
permitted. The only exception to this convention is
checkTopLevelWindow
, which returns a
boolean
value.
The current security manager is set by the
setSecurityManager
method in class
System
. The current security manager is obtained
by the getSecurityManager
method.
The special method
checkPermission(java.security.Permission)
determines whether an access request indicated by a specified
permission should be granted or denied. The
default implementation calls
AccessController.checkPermission(perm);
If a requested access is allowed,
checkPermission
returns quietly. If denied, a
SecurityException
is thrown.
As of Java 2 SDK v1.2, the default implementation of each of the other
check
methods in SecurityManager
is to
call the SecurityManager checkPermission
method
to determine if the calling thread has permission to perform the requested
operation.
Note that the checkPermission
method with
just a single permission argument always performs security checks
within the context of the currently executing thread.
Sometimes a security check that should be made within a given context
will actually need to be done from within a
different context (for example, from within a worker thread).
The getSecurityContext
method
and the checkPermission
method that includes a context argument are provided
for this situation. The
getSecurityContext
method returns a "snapshot"
of the current calling context. (The default implementation
returns an AccessControlContext object.) A sample call is
the following:
Object context = null; SecurityManager sm = System.getSecurityManager(); if (sm != null) context = sm.getSecurityContext();
The checkPermission
method
that takes a context object in addition to a permission
makes access decisions based on that context,
rather than on that of the current execution thread.
Code within a different context can thus call that method,
passing the permission and the
previously-saved context object. A sample call, using the
SecurityManager sm
obtained as in the previous example,
is the following:
if (sm != null) sm.checkPermission(permission, context);
Permissions fall into these categories: File, Socket, Net,
Security, Runtime, Property, AWT, Reflect, and Serializable.
The classes managing these various
permission categories are java.io.FilePermission
,
java.net.SocketPermission
,
java.net.NetPermission
,
java.security.SecurityPermission
,
java.lang.RuntimePermission
,
java.util.PropertyPermission
,
java.awt.AWTPermission
,
java.lang.reflect.ReflectPermission
, and
java.io.SerializablePermission
.
All but the first two (FilePermission and SocketPermission) are
subclasses of java.security.BasicPermission
, which itself
is an abstract subclass of the
top-level class for permissions, which is
java.security.Permission
. BasicPermission defines the
functionality needed for all permissions that contain a name
that follows the hierarchical property naming convention
(for example, "exitVM", "setFactory", "queuePrintJob", etc).
An asterisk
may appear at the end of the name, following a ".", or by itself, to
signify a wildcard match. For example: "a.*" or "*" is valid,
"*a" or "a*b" is not valid.
FilePermission and SocketPermission are subclasses of the
top-level class for permissions
(java.security.Permission
). Classes like these
that have a more complicated name syntax than that used by
BasicPermission subclass directly from Permission rather than from
BasicPermission. For example,
for a java.io.FilePermission
object, the permission name is
the path name of a file (or directory).
Some of the permission classes have an "actions" list that tells
the actions that are permitted for the object. For example,
for a java.io.FilePermission
object, the actions list
(such as "read, write") specifies which actions are granted for the
specified file (or for files in the specified directory).
Other permission classes are for "named" permissions - ones that contain a name but no actions list; you either have the named permission or you don't.
Note: There is also a java.security.AllPermission
permission that implies all permissions. It exists to simplify the work
of system administrators who might need to perform multiple
tasks that require all (or numerous) permissions.
See
Permissions in the JDK for permission-related information.
This document includes, for example, a table listing the various SecurityManager
check
methods and the permission(s) the default
implementation of each such method requires.
It also contains a table of all the version 1.2 methods
that require permissions, and for each such method tells
which permission it requires.
For more information about SecurityManager
changes made in
the JDK and advice regarding porting of 1.1-style security managers,
see the security documentation.
ClassLoader
,
SecurityException
,
checkTopLevelWindow
,
getSecurityManager
,
setSecurityManager
,
AccessController
,
AccessControlContext
,
AccessControlException
,
Permission
,
BasicPermission
,
FilePermission
,
SocketPermission
,
PropertyPermission
,
RuntimePermission
,
AWTPermission
,
Policy
,
SecurityPermission
,
ProtectionDomain
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
inCheck
Deprecated.
This type of security checking is not recommended.
It is recommended that the
checkPermission
call be used instead. |
| Constructor and Description |
|---|
SecurityManager()
Constructs a new
SecurityManager . |
| Modifier and Type | Method and Description |
|---|---|
void |
checkAccept(String host,
int port)
Throws a
SecurityException if the
calling thread is not permitted to accept a socket connection from
the specified host and port number. |
void |
checkAccess(Thread t)
Throws a
SecurityException if the
calling thread is not allowed to modify the thread argument. |
void |
checkAccess(ThreadGroup g)
Throws a
SecurityException if the
calling thread is not allowed to modify the thread group argument. |
void |
checkAwtEventQueueAccess()
Deprecated.
The dependency on
AWTPermission creates an
impediment to future modularization of the Java platform.
Users of this method should instead invoke
checkPermission(java.security.Permission) directly.
This method will be changed in a future release to check
the permission java.security.AllPermission . |
void |
checkConnect(String host,
int port)
Throws a
SecurityException if the
calling thread is not allowed to open a socket connection to the
specified host and port number. |
void |
checkConnect(String host,
int port,
Object context)
Throws a
SecurityException if the
specified security context is not allowed to open a socket
connection to the specified host and port number. |
void |
checkCreateClassLoader()
Throws a
SecurityException if the
calling thread is not allowed to create a new class loader. |
void |
checkDelete(String file)
Throws a
SecurityException if the
calling thread is not allowed to delete the specified file. |
void |
checkExec(String cmd)
Throws a
SecurityException if the
calling thread is not allowed to create a subprocess. |
void |
checkExit(int status)
Throws a
SecurityException if the
calling thread is not allowed to cause the Java Virtual Machine to
halt with the specified status code. |
void |
checkLink(String lib)
Throws a
SecurityException if the
calling thread is not allowed to dynamic link the library code
specified by the string argument file. |
void |
checkListen(int port)
Throws a
SecurityException if the
calling thread is not allowed to wait for a connection request on
the specified local port number. |
void |
checkMemberAccess(Class<?> clazz,
int which)
Deprecated.
This method relies on the caller being at a stack depth
of 4 which is error-prone and cannot be enforced by the runtime.
Users of this method should instead invoke
checkPermission(java.security.Permission)
directly. This method will be changed in a future release
to check the permission java.security.AllPermission . |
void |
checkMulticast(InetAddress maddr)
Throws a
SecurityException if the
calling thread is not allowed to use
(join/leave/send/receive) IP multicast. |
void |
checkMulticast(InetAddress maddr,
byte ttl)
Deprecated.
Use #checkPermission(java.security.Permission) instead
|
void |
checkPackageAccess(String pkg)
Throws a
SecurityException if the
calling thread is not allowed to access the package specified by
the argument. |
void |
checkPackageDefinition(String pkg)
Throws a
SecurityException if the
calling thread is not allowed to define classes in the package
specified by the argument. |
void |
checkPermission(Permission perm)
Throws a
SecurityException if the requested
access, specified by the given permission, is not permitted based
on the security policy currently in effect. |
void |
checkPermission(Permission perm,
Object context)
Throws a
SecurityException if the
specified security context is denied access to the resource
specified by the given permission. |
void |
checkPrintJobAccess()
Throws a
SecurityException if the
calling thread is not allowed to initiate a print job request. |
void |
checkPropertiesAccess()
Throws a
SecurityException if the
calling thread is not allowed to access or modify the system
properties. |
void |
checkPropertyAccess(String key)
Throws a
SecurityException if the
calling thread is not allowed to access the system property with
the specified key name. |
void |
checkRead(FileDescriptor fd)
Throws a
SecurityException if the
calling thread is not allowed to read from the specified file
descriptor. |
void |
checkRead(String file)
Throws a
SecurityException if the
calling thread is not allowed to read the file specified by the
string argument. |
void |
checkRead(String file,
Object context)
Throws a
SecurityException if the
specified security context is not allowed to read the file
specified by the string argument. |
void |
checkSecurityAccess(String target)
Determines whether the permission with the specified permission target
name should be granted or denied.
|
void |
checkSetFactory()
Throws a
SecurityException if the
calling thread is not allowed to set the socket factory used by
ServerSocket or Socket , or the stream
handler factory used by URL . |
void |
checkSystemClipboardAccess()
Deprecated.
The dependency on
AWTPermission creates an
impediment to future modularization of the Java platform.
Users of this method should instead invoke
checkPermission(java.security.Permission) directly.
This method will be changed in a future release to check
the permission java.security.AllPermission . |
boolean |
checkTopLevelWindow(Object window)
Deprecated.
The dependency on
AWTPermission creates an
impediment to future modularization of the Java platform.
Users of this method should instead invoke
checkPermission(java.security.Permission) directly.
This method will be changed in a future release to check
the permission java.security.AllPermission . |
void |
checkWrite(FileDescriptor fd)
Throws a
SecurityException if the
calling thread is not allowed to write to the specified file
descriptor. |
void |
checkWrite(String file)
Throws a
SecurityException if the
calling thread is not allowed to write to the file specified by
the string argument. |
protected int |
classDepth(String name)
Deprecated.
This type of security checking is not recommended.
It is recommended that the
checkPermission
call be used instead. |
protected int |
classLoaderDepth()
Deprecated.
This type of security checking is not recommended.
It is recommended that the
checkPermission
call be used instead. |
protected ClassLoader |
currentClassLoader()
Deprecated.
This type of security checking is not recommended.
It is recommended that the
checkPermission
call be used instead. |
protected Class<?> |
currentLoadedClass()
Deprecated.
This type of security checking is not recommended.
It is recommended that the
checkPermission
call be used instead. |
protected Class[] |
getClassContext()
Returns the current execution stack as an array of classes.
|
boolean |
getInCheck()
Deprecated.
This type of security checking is not recommended.
It is recommended that the
checkPermission
call be used instead. |
Object |
getSecurityContext()
Creates an object that encapsulates the current execution
environment.
|
ThreadGroup |
getThreadGroup()
Returns the thread group into which to instantiate any new
thread being created at the time this is being called.
|
protected boolean |
inClass(String name)
Deprecated.
This type of security checking is not recommended.
It is recommended that the
checkPermission
call be used instead. |
protected boolean |
inClassLoader()
Deprecated.
This type of security checking is not recommended.
It is recommended that the
checkPermission
call be used instead. |
@Deprecated protected boolean inCheck
checkPermission
call be used instead.true
if there is a security check in
progress; false
otherwise.public SecurityManager()
SecurityManager
.
If there is a security manager already installed, this method first
calls the security manager's checkPermission
method
with the RuntimePermission("createSecurityManager")
permission to ensure the calling thread has permission to create a new
security manager.
This may result in throwing a SecurityException
.
SecurityException
- if a security manager already
exists and its checkPermission
method
doesn't allow creation of a new security manager.System.getSecurityManager()
,
checkPermission
,
RuntimePermission
@Deprecated public boolean getInCheck()
checkPermission
call be used instead.inCheck
field. This field
should contain true
if a security check is
in progress,
false
otherwise.inCheck
protected Class[] getClassContext()
The length of the array is the number of methods on the execution
stack. The element at index 0
is the class of the
currently executing method, the element at index 1
is
the class of that method's caller, and so on.
@Deprecated protected ClassLoader currentClassLoader()
checkPermission
call be used instead.ClassLoader.getSystemClassLoader()
) or one of its ancestors.
This method will return
null
in the following three cases:
AccessController.doPrivileged(java.security.PrivilegedAction<T>)
)
are from classes
defined using the system class loader or one of its ancestors.
checkPermission
with
java.security.AllPermission
does not
result in a SecurityException.
getSystemClassLoader
,
checkPermission
@Deprecated protected Class<?> currentLoadedClass()
checkPermission
call be used instead.ClassLoader.getSystemClassLoader()
) or one of its ancestors.
This method will return
null
in the following three cases:
AccessController.doPrivileged(java.security.PrivilegedAction<T>)
)
are from classes
defined using the system class loader or one of its ancestors.
checkPermission
with
java.security.AllPermission
does not
result in a SecurityException.
getSystemClassLoader
,
checkPermission
@Deprecated protected int classDepth(String name)
checkPermission
call be used instead.name
- the fully qualified name of the class to search for.-1
if such a frame cannot be found.@Deprecated protected int classLoaderDepth()
checkPermission
call be used instead.ClassLoader.getSystemClassLoader()
) or one of its ancestors.
This method will return -1 in the following three cases:
AccessController.doPrivileged(java.security.PrivilegedAction<T>)
)
are from classes
defined using the system class loader or one of its ancestors.
checkPermission
with
java.security.AllPermission
does not
result in a SecurityException.
getSystemClassLoader
,
checkPermission
@Deprecated protected boolean inClass(String name)
checkPermission
call be used instead.name
- the fully qualified name of the class.true
if a method from a class with the specified
name is on the execution stack; false
otherwise.@Deprecated protected boolean inClassLoader()
checkPermission
call be used instead.true
if a call to currentClassLoader
has a non-null return value.currentClassLoader
public Object getSecurityContext()
checkConnect
method and by the
two-argument checkRead
method.
These methods are needed because a trusted method may be called
on to read a file or open a socket on behalf of another method.
The trusted method needs to determine if the other (possibly
untrusted) method would be allowed to perform the operation on its
own.
The default implementation of this method is to return
an AccessControlContext
object.
checkConnect
,
checkRead
,
AccessControlContext
public void checkPermission(Permission perm)
SecurityException
if the requested
access, specified by the given permission, is not permitted based
on the security policy currently in effect.
This method calls AccessController.checkPermission
with the given permission.
perm
- the requested permission.SecurityException
- if access is not permitted based on
the current security policy.NullPointerException
- if the permission argument is
null
.public void checkPermission(Permission perm, Object context)
SecurityException
if the
specified security context is denied access to the resource
specified by the given permission.
The context must be a security
context returned by a previous call to
getSecurityContext
and the access control
decision is based upon the configured security policy for
that security context.
If context
is an instance of
AccessControlContext
then the
AccessControlContext.checkPermission
method is
invoked with the specified permission.
If context
is not an instance of
AccessControlContext
then a
SecurityException
is thrown.
perm
- the specified permissioncontext
- a system-dependent security context.SecurityException
- if the specified security context
is not an instance of AccessControlContext
(e.g., is null
), or is denied access to the
resource specified by the given permission.NullPointerException
- if the permission argument is
null
.getSecurityContext()
,
AccessControlContext.checkPermission(java.security.Permission)
public void checkCreateClassLoader()
SecurityException
if the
calling thread is not allowed to create a new class loader.
This method calls checkPermission
with the
RuntimePermission("createClassLoader")
permission.
If you override this method, then you should make a call to
super.checkCreateClassLoader
at the point the overridden method would normally throw an
exception.
SecurityException
- if the calling thread does not
have permission
to create a new class loader.ClassLoader.ClassLoader()
,
checkPermission
public void checkAccess(Thread t)
SecurityException
if the
calling thread is not allowed to modify the thread argument.
This method is invoked for the current security manager by the
stop
, suspend
, resume
,
setPriority
, setName
, and
setDaemon
methods of class Thread
.
If the thread argument is a system thread (belongs to
the thread group with a null
parent) then
this method calls checkPermission
with the
RuntimePermission("modifyThread")
permission.
If the thread argument is not a system thread,
this method just returns silently.
Applications that want a stricter policy should override this
method. If this method is overridden, the method that overrides
it should additionally check to see if the calling thread has the
RuntimePermission("modifyThread")
permission, and
if so, return silently. This is to ensure that code granted
that permission (such as the JDK itself) is allowed to
manipulate any thread.
If this method is overridden, then
super.checkAccess
should
be called by the first statement in the overridden method, or the
equivalent security check should be placed in the overridden method.
t
- the thread to be checked.SecurityException
- if the calling thread does not have
permission to modify the thread.NullPointerException
- if the thread argument is
null
.resume
,
setDaemon
,
setName
,
setPriority
,
stop
,
suspend
,
checkPermission
public void checkAccess(ThreadGroup g)
SecurityException
if the
calling thread is not allowed to modify the thread group argument.
This method is invoked for the current security manager when a
new child thread or child thread group is created, and by the
setDaemon
, setMaxPriority
,
stop
, suspend
, resume
, and
destroy
methods of class ThreadGroup
.
If the thread group argument is the system thread group (
has a null
parent) then
this method calls checkPermission
with the
RuntimePermission("modifyThreadGroup")
permission.
If the thread group argument is not the system thread group,
this method just returns silently.
Applications that want a stricter policy should override this
method. If this method is overridden, the method that overrides
it should additionally check to see if the calling thread has the
RuntimePermission("modifyThreadGroup")
permission, and
if so, return silently. This is to ensure that code granted
that permission (such as the JDK itself) is allowed to
manipulate any thread.
If this method is overridden, then
super.checkAccess
should
be called by the first statement in the overridden method, or the
equivalent security check should be placed in the overridden method.
g
- the thread group to be checked.SecurityException
- if the calling thread does not have
permission to modify the thread group.NullPointerException
- if the thread group argument is
null
.destroy
,
resume
,
setDaemon
,
setMaxPriority
,
stop
,
suspend
,
checkPermission
public void checkExit(int status)
SecurityException
if the
calling thread is not allowed to cause the Java Virtual Machine to
halt with the specified status code.
This method is invoked for the current security manager by the
exit
method of class Runtime
. A status
of 0
indicates success; other values indicate various
errors.
This method calls checkPermission
with the
RuntimePermission("exitVM."+status)
permission.
If you override this method, then you should make a call to
super.checkExit
at the point the overridden method would normally throw an
exception.
status
- the exit status.SecurityException
- if the calling thread does not have
permission to halt the Java Virtual Machine with
the specified status.exit
,
checkPermission
public void checkExec(String cmd)
SecurityException
if the
calling thread is not allowed to create a subprocess.
This method is invoked for the current security manager by the
exec
methods of class Runtime
.
This method calls checkPermission
with the
FilePermission(cmd,"execute")
permission
if cmd is an absolute path, otherwise it calls
checkPermission
with
FilePermission("<<ALL FILES>>","execute")
.
If you override this method, then you should make a call to
super.checkExec
at the point the overridden method would normally throw an
exception.
cmd
- the specified system command.SecurityException
- if the calling thread does not have
permission to create a subprocess.NullPointerException
- if the cmd
argument is
null
.Runtime.exec(java.lang.String)
,
Runtime.exec(java.lang.String, java.lang.String[])
,
Runtime.exec(java.lang.String[])
,
Runtime.exec(java.lang.String[], java.lang.String[])
,
checkPermission
public void checkLink(String lib)
SecurityException
if the
calling thread is not allowed to dynamic link the library code
specified by the string argument file. The argument is either a
simple library name or a complete filename.
This method is invoked for the current security manager by
methods load
and loadLibrary
of class
Runtime
.
This method calls checkPermission
with the
RuntimePermission("loadLibrary."+lib)
permission.
If you override this method, then you should make a call to
super.checkLink
at the point the overridden method would normally throw an
exception.
lib
- the name of the library.SecurityException
- if the calling thread does not have
permission to dynamically link the library.NullPointerException
- if the lib
argument is
null
.Runtime.load(java.lang.String)
,
Runtime.loadLibrary(java.lang.String)
,
checkPermission
public void checkRead(FileDescriptor fd)
SecurityException
if the
calling thread is not allowed to read from the specified file
descriptor.
This method calls checkPermission
with the
RuntimePermission("readFileDescriptor")
permission.
If you override this method, then you should make a call to
super.checkRead
at the point the overridden method would normally throw an
exception.
fd
- the system-dependent file descriptor.SecurityException
- if the calling thread does not have
permission to access the specified file descriptor.NullPointerException
- if the file descriptor argument is
null
.FileDescriptor
,
checkPermission
public void checkRead(String file)
SecurityException
if the
calling thread is not allowed to read the file specified by the
string argument.
This method calls checkPermission
with the
FilePermission(file,"read")
permission.
If you override this method, then you should make a call to
super.checkRead
at the point the overridden method would normally throw an
exception.
file
- the system-dependent file name.SecurityException
- if the calling thread does not have
permission to access the specified file.NullPointerException
- if the file
argument is
null
.checkPermission
public void checkRead(String file, Object context)
SecurityException
if the
specified security context is not allowed to read the file
specified by the string argument. The context must be a security
context returned by a previous call to
getSecurityContext
.
If context
is an instance of
AccessControlContext
then the
AccessControlContext.checkPermission
method will
be invoked with the FilePermission(file,"read")
permission.
If context
is not an instance of
AccessControlContext
then a
SecurityException
is thrown.
If you override this method, then you should make a call to
super.checkRead
at the point the overridden method would normally throw an
exception.
file
- the system-dependent filename.context
- a system-dependent security context.SecurityException
- if the specified security context
is not an instance of AccessControlContext
(e.g., is null
), or does not have permission
to read the specified file.NullPointerException
- if the file
argument is
null
.getSecurityContext()
,
AccessControlContext.checkPermission(java.security.Permission)
public void checkWrite(FileDescriptor fd)
SecurityException
if the
calling thread is not allowed to write to the specified file
descriptor.
This method calls checkPermission
with the
RuntimePermission("writeFileDescriptor")
permission.
If you override this method, then you should make a call to
super.checkWrite
at the point the overridden method would normally throw an
exception.
fd
- the system-dependent file descriptor.SecurityException
- if the calling thread does not have
permission to access the specified file descriptor.NullPointerException
- if the file descriptor argument is
null
.FileDescriptor
,
checkPermission
public void checkWrite(String file)
SecurityException
if the
calling thread is not allowed to write to the file specified by
the string argument.
This method calls checkPermission
with the
FilePermission(file,"write")
permission.
If you override this method, then you should make a call to
super.checkWrite
at the point the overridden method would normally throw an
exception.
file
- the system-dependent filename.SecurityException
- if the calling thread does not
have permission to access the specified file.NullPointerException
- if the file
argument is
null
.checkPermission
public void checkDelete(String file)
SecurityException
if the
calling thread is not allowed to delete the specified file.
This method is invoked for the current security manager by the
delete
method of class File
.
This method calls checkPermission
with the
FilePermission(file,"delete")
permission.
If you override this method, then you should make a call to
super.checkDelete
at the point the overridden method would normally throw an
exception.
file
- the system-dependent filename.SecurityException
- if the calling thread does not
have permission to delete the file.NullPointerException
- if the file
argument is
null
.File.delete()
,
checkPermission
public void checkConnect(String host, int port)
SecurityException
if the
calling thread is not allowed to open a socket connection to the
specified host and port number.
A port number of -1
indicates that the calling
method is attempting to determine the IP address of the specified
host name.
This method calls checkPermission
with the
SocketPermission(host+":"+port,"connect")
permission if
the port is not equal to -1. If the port is equal to -1, then
it calls checkPermission
with the
SocketPermission(host,"resolve")
permission.
If you override this method, then you should make a call to
super.checkConnect
at the point the overridden method would normally throw an
exception.
host
- the host name port to connect to.port
- the protocol port to connect to.SecurityException
- if the calling thread does not have
permission to open a socket connection to the specified
host
and port
.NullPointerException
- if the host
argument is
null
.checkPermission
public void checkConnect(String host, int port, Object context)
SecurityException
if the
specified security context is not allowed to open a socket
connection to the specified host and port number.
A port number of -1
indicates that the calling
method is attempting to determine the IP address of the specified
host name.
If context
is not an instance of
AccessControlContext
then a
SecurityException
is thrown.
Otherwise, the port number is checked. If it is not equal
to -1, the context
's checkPermission
method is called with a
SocketPermission(host+":"+port,"connect")
permission.
If the port is equal to -1, then
the context
's checkPermission
method
is called with a
SocketPermission(host,"resolve")
permission.
If you override this method, then you should make a call to
super.checkConnect
at the point the overridden method would normally throw an
exception.
host
- the host name port to connect to.port
- the protocol port to connect to.context
- a system-dependent security context.SecurityException
- if the specified security context
is not an instance of AccessControlContext
(e.g., is null
), or does not have permission
to open a socket connection to the specified
host
and port
.NullPointerException
- if the host
argument is
null
.getSecurityContext()
,
AccessControlContext.checkPermission(java.security.Permission)
public void checkListen(int port)
SecurityException
if the
calling thread is not allowed to wait for a connection request on
the specified local port number.
This method calls checkPermission
with the
SocketPermission("localhost:"+port,"listen")
.
If you override this method, then you should make a call to
super.checkListen
at the point the overridden method would normally throw an
exception.
port
- the local port.SecurityException
- if the calling thread does not have
permission to listen on the specified port.checkPermission
public void checkAccept(String host, int port)
SecurityException
if the
calling thread is not permitted to accept a socket connection from
the specified host and port number.
This method is invoked for the current security manager by the
accept
method of class ServerSocket
.
This method calls checkPermission
with the
SocketPermission(host+":"+port,"accept")
permission.
If you override this method, then you should make a call to
super.checkAccept
at the point the overridden method would normally throw an
exception.
host
- the host name of the socket connection.port
- the port number of the socket connection.SecurityException
- if the calling thread does not have
permission to accept the connection.NullPointerException
- if the host
argument is
null
.ServerSocket.accept()
,
checkPermission
public void checkMulticast(InetAddress maddr)
SecurityException
if the
calling thread is not allowed to use
(join/leave/send/receive) IP multicast.
This method calls checkPermission
with the
java.net.SocketPermission(maddr.getHostAddress(),
"accept,connect")
permission.
If you override this method, then you should make a call to
super.checkMulticast
at the point the overridden method would normally throw an
exception.
maddr
- Internet group address to be used.SecurityException
- if the calling thread is not allowed to
use (join/leave/send/receive) IP multicast.NullPointerException
- if the address argument is
null
.checkPermission
@Deprecated public void checkMulticast(InetAddress maddr, byte ttl)
SecurityException
if the
calling thread is not allowed to use
(join/leave/send/receive) IP multicast.
This method calls checkPermission
with the
java.net.SocketPermission(maddr.getHostAddress(),
"accept,connect")
permission.
If you override this method, then you should make a call to
super.checkMulticast
at the point the overridden method would normally throw an
exception.
maddr
- Internet group address to be used.ttl
- value in use, if it is multicast send.
Note: this particular implementation does not use the ttl
parameter.SecurityException
- if the calling thread is not allowed to
use (join/leave/send/receive) IP multicast.NullPointerException
- if the address argument is
null
.checkPermission
public void checkPropertiesAccess()
SecurityException
if the
calling thread is not allowed to access or modify the system
properties.
This method is used by the getProperties
and
setProperties
methods of class System
.
This method calls checkPermission
with the
PropertyPermission("*", "read,write")
permission.
If you override this method, then you should make a call to
super.checkPropertiesAccess
at the point the overridden method would normally throw an
exception.
SecurityException
- if the calling thread does not have
permission to access or modify the system properties.System.getProperties()
,
System.setProperties(java.util.Properties)
,
checkPermission
public void checkPropertyAccess(String key)
SecurityException
if the
calling thread is not allowed to access the system property with
the specified key
name.
This method is used by the getProperty
method of
class System
.
This method calls checkPermission
with the
PropertyPermission(key, "read")
permission.
If you override this method, then you should make a call to
super.checkPropertyAccess
at the point the overridden method would normally throw an
exception.
key
- a system property key.SecurityException
- if the calling thread does not have
permission to access the specified system property.NullPointerException
- if the key
argument is
null
.IllegalArgumentException
- if key
is empty.System.getProperty(java.lang.String)
,
checkPermission
@Deprecated public boolean checkTopLevelWindow(Object window)
AWTPermission
creates an
impediment to future modularization of the Java platform.
Users of this method should instead invoke
checkPermission(java.security.Permission)
directly.
This method will be changed in a future release to check
the permission java.security.AllPermission
.false
if the calling
thread is not trusted to bring up the top-level window indicated
by the window
argument. In this case, the caller can
still decide to show the window, but the window should include
some sort of visual warning. If the method returns
true
, then the window can be shown without any
special restrictions.
See class Window
for more information on trusted and
untrusted windows.
This method calls
checkPermission
with the
AWTPermission("showWindowWithoutWarningBanner")
permission,
and returns true
if a SecurityException is not thrown,
otherwise it returns false
.
In the case of subset Profiles of Java SE that do not include the
java.awt
package, checkPermission
is instead called
to check the permission java.security.AllPermission
.
If you override this method, then you should make a call to
super.checkTopLevelWindow
at the point the overridden method would normally return
false
, and the value of
super.checkTopLevelWindow
should
be returned.
window
- the new window that is being created.true
if the calling thread is trusted to put up
top-level windows; false
otherwise.NullPointerException
- if the window
argument is
null
.Window
,
checkPermission
public void checkPrintJobAccess()
SecurityException
if the
calling thread is not allowed to initiate a print job request.
This method calls
checkPermission
with the
RuntimePermission("queuePrintJob")
permission.
If you override this method, then you should make a call to
super.checkPrintJobAccess
at the point the overridden method would normally throw an
exception.
SecurityException
- if the calling thread does not have
permission to initiate a print job request.checkPermission
@Deprecated public void checkSystemClipboardAccess()
AWTPermission
creates an
impediment to future modularization of the Java platform.
Users of this method should instead invoke
checkPermission(java.security.Permission)
directly.
This method will be changed in a future release to check
the permission java.security.AllPermission
.SecurityException
if the
calling thread is not allowed to access the system clipboard.
This method calls checkPermission
with the
AWTPermission("accessClipboard")
permission.
In the case of subset Profiles of Java SE that do not include the
java.awt
package, checkPermission
is instead called
to check the permission java.security.AllPermission
.
If you override this method, then you should make a call to
super.checkSystemClipboardAccess
at the point the overridden method would normally throw an
exception.
SecurityException
- if the calling thread does not have
permission to access the system clipboard.checkPermission
@Deprecated public void checkAwtEventQueueAccess()
AWTPermission
creates an
impediment to future modularization of the Java platform.
Users of this method should instead invoke
checkPermission(java.security.Permission)
directly.
This method will be changed in a future release to check
the permission java.security.AllPermission
.SecurityException
if the
calling thread is not allowed to access the AWT event queue.
This method calls checkPermission
with the
AWTPermission("accessEventQueue")
permission.
In the case of subset Profiles of Java SE that do not include the
java.awt
package, checkPermission
is instead called
to check the permission java.security.AllPermission
.
If you override this method, then you should make a call to
super.checkAwtEventQueueAccess
at the point the overridden method would normally throw an
exception.
SecurityException
- if the calling thread does not have
permission to access the AWT event queue.checkPermission
public void checkPackageAccess(String pkg)
SecurityException
if the
calling thread is not allowed to access the package specified by
the argument.
This method is used by the loadClass
method of class
loaders.
This method first gets a list of
restricted packages by obtaining a comma-separated list from
a call to
java.security.Security.getProperty("package.access")
,
and checks to see if pkg
starts with or equals
any of the restricted packages. If it does, then
checkPermission
gets called with the
RuntimePermission("accessClassInPackage."+pkg)
permission.
If this method is overridden, then
super.checkPackageAccess
should be called
as the first line in the overridden method.
pkg
- the package name.SecurityException
- if the calling thread does not have
permission to access the specified package.NullPointerException
- if the package name argument is
null
.loadClass
,
getProperty
,
checkPermission
public void checkPackageDefinition(String pkg)
SecurityException
if the
calling thread is not allowed to define classes in the package
specified by the argument.
This method is used by the loadClass
method of some
class loaders.
This method first gets a list of restricted packages by
obtaining a comma-separated list from a call to
java.security.Security.getProperty("package.definition")
,
and checks to see if pkg
starts with or equals
any of the restricted packages. If it does, then
checkPermission
gets called with the
RuntimePermission("defineClassInPackage."+pkg)
permission.
If this method is overridden, then
super.checkPackageDefinition
should be called
as the first line in the overridden method.
pkg
- the package name.SecurityException
- if the calling thread does not have
permission to define classes in the specified package.ClassLoader.loadClass(java.lang.String, boolean)
,
getProperty
,
checkPermission
public void checkSetFactory()
SecurityException
if the
calling thread is not allowed to set the socket factory used by
ServerSocket
or Socket
, or the stream
handler factory used by URL
.
This method calls checkPermission
with the
RuntimePermission("setFactory")
permission.
If you override this method, then you should make a call to
super.checkSetFactory
at the point the overridden method would normally throw an
exception.
SecurityException
- if the calling thread does not have
permission to specify a socket factory or a stream
handler factory.setSocketFactory
,
setSocketImplFactory
,
setURLStreamHandlerFactory
,
checkPermission
@Deprecated public void checkMemberAccess(Class<?> clazz, int which)
checkPermission(java.security.Permission)
directly. This method will be changed in a future release
to check the permission java.security.AllPermission
.SecurityException
if the
calling thread is not allowed to access members.
The default policy is to allow access to PUBLIC members, as well
as access to classes that have the same class loader as the caller.
In all other cases, this method calls checkPermission
with the RuntimePermission("accessDeclaredMembers")
permission.
If this method is overridden, then a call to
super.checkMemberAccess
cannot be made,
as the default implementation of checkMemberAccess
relies on the code being checked being at a stack depth of
4.
clazz
- the class that reflection is to be performed on.which
- type of access, PUBLIC or DECLARED.SecurityException
- if the caller does not have
permission to access members.NullPointerException
- if the clazz
argument is
null
.Member
,
checkPermission
public void checkSecurityAccess(String target)
If the requested permission is allowed, this method returns quietly. If denied, a SecurityException is raised.
This method creates a SecurityPermission
object for
the given permission target name and calls checkPermission
with it.
See the documentation for
for
a list of possible permission target names.
SecurityPermission
If you override this method, then you should make a call to
super.checkSecurityAccess
at the point the overridden method would normally throw an
exception.
target
- the target name of the SecurityPermission
.SecurityException
- if the calling thread does not have
permission for the requested access.NullPointerException
- if target
is null.IllegalArgumentException
- if target
is empty.checkPermission
public ThreadGroup getThreadGroup()
ThreadGroup
Dracula Javadoc Sample, Made with Allan Im.


Step up your game with a modern voice & text chat app. Crystal clear voice, multiple server and channel support, mobile apps, and more. Get your free server now!
for all time @crumb@KomodoWorld ^^(edited)
Llama18-Oct-18 06:21 PM
Can we opt out of getting tagged by the rain bot?
SHossain18-Oct-18 06:22 PM
you can mute botchat channel @Llama
there is another option, that is only if you don't want to get tip from anyone
i.e.: excluding your id from tipbot's database
ComputerGenie 👴👴👴18-Oct-18 06:24 PM
@Llama you can set yourself to offline and you'll not get any
SHossain18-Oct-18 06:25 PM
and, that too ^^
Llama18-Oct-18 06:26 PM
Well
I don’t want that
ComputerGenie 👴👴👴18-Oct-18 06:27 PM
If you want the free sats, then you get the lil red numbers
Llama18-Oct-18 06:27 PM
I just exclude me
Only from the rains and soaks tho
SHossain18-Oct-18 06:28 PM
there is no exclude like that.
either you want to receive tips or don't.
Llama18-Oct-18 06:29 PM
Oh
Let m withdraw first
ComputerGenie 👴👴👴18-Oct-18 06:29 PM
>But I only want big tips
1
Llama18-Oct-18 06:52 PM
oh i can block it
smart
CryptAiz18-Oct-18 07:19 PM
what if i have few legit use-cases/ideas for projects and business models for each of them and want to build on KMD but not enough programming skills, just designing and newbie level coding. what are the possibilities here? the KMD community seems friendly
ComputerGenie 👴👴👴18-Oct-18 07:20 PM
For the right price, you can almost always find someone with skills
CryptAiz18-Oct-18 07:23 PM
i see.
CryptoNinjaa18-Oct-18 07:24 PM
Could speak with @PTYX and chainzilla or checkout #chainmakers ?
CryptAiz18-Oct-18 07:30 PM
cool. i will head there.
ch6ris18-Oct-18 07:55 PM
@sφldat Thanks for the tip on uBlock Origin, I did have adblock installed not plus. From what I've read plus is in the pockets of big money and adblock has an unclear development team.
Join komodo discord and be rewarded by his tipbot!! Discover his awesome community, Tech Updates and much more. Thanks @KomodoPlatform #kmdtip #tipbot #kmd #komodo
https://t.co/oT4Muyauo5
A design to thank for your tipbot
2
3
CryptoHuff18-Oct-18 09:57 PM
@KomodoWorld I doubt it.
That is now how you get investors.
My traffic on the other hand is super targeted.
You are extremely wrong here buddy
You are not suited for marketing position.
crumb18-Oct-18 10:15 PM
@CryptoHuff perhaps you should reconsider your approach here in this channel. i have not seen you contributing to conversations here. you just ask random times about people's portfolios and push your own site. this is more tech oriented bunch here. if you actually contribute with your knowledge you'd probably get better reception. unfortunately all you do is push your own site. not cool dude...
1
1
ComputerGenie 👴👴👴18-Oct-18 10:32 PM
@CryptoHuff He may or may not be "suited for marketing position", but I am certain that the average quadriplegic has a better future in sign-flipping than you have in continuing to spam on this server
PTYX18-Oct-18 10:33 PM
1
ComputerGenie 👴👴👴18-Oct-18 10:39 PM
a natural foodstuffdistrusts anything referred to as "foodstuff"
Pete18-Oct-18 10:39 PM
came here from a thread about pirate ? am i in the right discord?
ComputerGenie 👴👴👴18-Oct-18 10:39 PM
@Pete#deleted-channel <<< there's where you want to be
Pete18-Oct-18 10:40 PM
thanks bro
1
Kitchen Table18-Oct-18 10:41 PM
@CryptoHuff Since you sit on the highest pedestal in the court of shitty marketing, let me ask you a question. When exactly do you take NO as an answer? Or do you keep coming until you're close enough to whisper in our ear "Just let it happen"?
Pete18-Oct-18 10:43 PM
@ComputerGenie 👴👴👴 how many gpus u have
ComputerGenie 👴👴👴18-Oct-18 10:47 PM
"a few"
damodar19-Oct-18 01:05 AM
what is block rewards of piarate coin
ComputerGenie 👴👴👴19-Oct-18 01:06 AM
256 for now
damodar19-Oct-18 01:08 AM
@ComputerGenie 👴👴👴 what the block rewards bro
ComputerGenie 👴👴👴19-Oct-18 01:09 AM
256 for now
bro
damodar19-Oct-18 01:10 AM
oh ok thanks bro
damodar19-Oct-18 02:24 AM
Pirate coin is also part of Komodo?
Bcaz pirate home is redirecting to Komodo discord
polycryptoblog19-Oct-18 02:26 AM
Yes it's part of the ecosystem
Llama19-Oct-18 02:41 AM
@damodar there is a distinction between the two, though.
jspook1619-Oct-18 02:57 AM
Pirate is not an asset chain from what I understand but a fork, like verus
If I'm wrong someone please correct me
ComputerGenie 👴👴👴19-Oct-18 03:06 AM
you're wrong, it's a pure assetchain that uses the forced privacy feature
the confusion might be from the "runtime fork" term that means that the daemon can support multiple instances with multiple configs
blackjok3r19-Oct-18 03:10 AM
The runtime forf stuff is really powerful, what Ive been able to make using it the last few weeks is quite amazing... still works with any komodo AC or KMD, but add -ac_stream=1 and -ac_pubkey=02xxx and its something totally diffrent to any blockhain ever created.
Deleted User19-Oct-18 04:03 AM
lmao scared I lost all my kmd after cpu issues, and I had to do a force reinstall.
I have my notes with a password, I have a WIF but it’s only 12 words long. when I use it I don’t see the deposit address I used, and 0 balance.
right now I went to import key and put my kmd password that I used in the past. is this possible to recover my wallet?
am I s.o.l. on recovering my wallet?(edited)
hyperDEX19-Oct-18 04:50 AM
Write it out on a doc file on the pc instead of typing it directly into agama, then verify then paste it in once you know there are no mistakes
ComputerGenie 👴👴👴19-Oct-18 04:52 AM
when I use it I don’t see the deposit address I used
Then something about it isn't the same (a space, a cap letter, something)
Deleted User19-Oct-18 05:16 AM
It’s a password I made so I’m not sure if that’s the encrypted version, or. I don’t think I have the correct WIF since it’s not showing the deposit address. im getting more confident I lost all my kmd.
I was just gaming, and my pc turned off, and when it came back on I had to do a factory install on windows.

Deleted User19-Oct-18 05:17 AM
I also thought I wrote it down, but I’m looking everywhere and I can’t find anything. that’s my fault there being unorganized, or not sure if I even wrote it to store initially.
I only know my password to the wallet that’s it.
I know my deposit address too. I checked on explorer and the balance is there. depressing.
I had everything backed up on my pc before it stopped working :/ I was recovering bunch of wallets, and kmd is where I can’t recover it.
Llama19-Oct-18 05:21 AM
You need the private keys. Maybe somehow get it from your hard drive. I’m sure the file haven’t been overwritten.
Deleted User19-Oct-18 05:22 AM
I went to system restore and i don’t have previous system restore points. I tried %appdata% trick and I’m not sure what to do.
Hermes19-Oct-18 05:24 AM
You know the pin.but no the passphrase right?
@Deleted User
Deleted User19-Oct-18 05:24 AM
I believe so. like it’s a normal password. uppercase lowercase special character number
But the complex wallet looking thing I don’t have which is what I’m referring to as the WIF.
I also do not have the word recovery.
Hermes19-Oct-18 05:26 AM
Which OS are you using ?
Deleted User19-Oct-18 05:26 AM
Windows 10.
Hermes19-Oct-18 05:26 AM
You don’t see the Komodo folder inside %appdata% Roaming path ?
Deleted User19-Oct-18 05:27 AM
I see it yes but I wasn’t sure if it would pick up from previous windows install.
like cause I launched it again on this new install so I thought it was only showing me cause I ran it once on the new install. (Current)(edited)
Hermes19-Oct-18 05:28 AM
Hmmm so this is a new installation from scratch and you don’t have the past wallet.dat file ?
Deleted User19-Oct-18 05:29 AM
exactly. I have like 3 wallet.dat files but the date doesn’t match, so I’m going to say those aren’t for kmd.
just stuff I have on an external hard drive that I’m recovering from.(edited)
I realize I need a nano/ ledger going forward. might of cost me a $1k+ lesson now. (edited)
In this exclusive episode of The Bull Pen Podcast, The Crypto Bully steps into the Bull Pen with Nick aka GeoCold. The 18-year-old ethical hacker that livestreamed his 51% attack on Bitcoin Private…
1
Hermes19-Oct-18 05:35 AM
What I will do in your position is to try running the native mode of the wallet with each wallet.dat file that you backed up and see if one holds your funds. You will just need to replace the wallet.dat file inside of the Komodo folder and do these attempts. It’s better than not trying.
2
@Deleted User
Deleted User19-Oct-18 05:37 AM
I will in the morning. in the meantime I was going crazy searching all my papers everywhere for the wallet recovery words.
damodar19-Oct-18 05:44 AM
please help, on mining page it shows paid balance as 33 arrr, but in wallet it shows pnly 14
any idea why this happes
snowdamn19-Oct-18 06:02 AM
i got a headache by the end of that podcast hoping for more mentions lol
gigoplast19-Oct-18 06:27 AM
@kyle if ur system based on linux u can recover if ur system on windows u can recover but with a triky think , u need a live usb linux based system ( debian/ubuntu/mint ) a network connection then boot from usb , onece ur live system ready open a terminal and type sudo su # apt-get update && apt-get dist-upgrade . # apt-get install testdisk . run this command # testdisk . chose ur harddisk partition . you can find more about it google/youtube search tesdisk. it's a recoverbal data
@Jacobstoon @ActualAdviceBTC @sheos_org @KomodoPlatform #Komodo is severely limited due to transaction fees. Can you convince the masses to pay even $0.01 per action in a dapp? Highly unlikely.
The masses are already paying several dollars in eth/gas as tx fees for their dapps, why would 0.01 be a problem?
ComputerGenie 👴👴👴19-Oct-18 06:41 AM
due to transaction fees? How much is 0.0001 of $1.30?
jl777c19-Oct-18 06:41 AM
since when is 0.0001 KMD $0.01?
and since when is 0.0001 of the CC chain that the dapp is paid on anywhere close to $0.01
oh, he is an EOS guy, never mind, reality doesnt work with delusionals
charge devs a million dollars to have their app running that cant be monetized because as he says users wont pay $0.01 per action


Home
About
Workflow
Execution
a
View Legend
Collapsible Group Item #2 (template panel)
Input Variables
Output Variables
Variable: (template panel)
Variable Info
Type:
Generated By:
Processes Used By
Files
Download:


China Taste of Vernon, LLC
Menu
Services
Contact
Your order has been placed
A confirmation email has been sent to the email address you provided.
Return to menu
Submit


inquiry_stopwatch(3f) - [M_stopwatch] returns M_StopWatch options and system dependent values (LICENSE:PD)
Synopsis
Description
Diagnostics
Examples
Bugs
Author
See Also
subroutine inquiry_stopwatch(default_clock, io_unit_print, io_unit_error, print_errors, abort_errors, print_form, cpu_avail, user_avail, sys_avail, wall_avail, cpu_prec, wall_prec, version, err)
character(len=*), optional, intent(OUT) :: default_clock(4) integer, optional, intent(OUT) :: io_unit_print, io_unit_err logical, optional, intent(OUT) :: print_errors, abort_errors character(len=*), optional, intent(OUT) :: print_form logical, optional, intent(OUT) :: cpu_avail, user_avail, sys_avail, wall_avail real, optional, intent(OUT) :: cpu_prec, wall_prec character(len=16), optional, intent(OUT) :: version integer, optional, intent(OUT) :: err
Returns the value of M_StopWatch options and other system and implementation dependent values. All arguments are optional and have intent OUT. The following arguments can be set by option_stopwatch. See option_stopwatch(3) for further details on their meaning. default_clock is the set of clocks that are used when the clock argument is omitted in a call to a M_StopWatch routine. io_unit_print returns the unit for output from subroutine print_watch. io_unit_error returns the unit for any error messages printed by M_StopWatch. If print_errors is TRUE, then an error message will be printed to io_unit_error whenever an error condition occurs. If abort_errors is TRUE, then the program will terminate when an error condition occurs. print_form is the format used by print_watch(3) when the form argument is omitted.The remaining arguments return system information that can not be changed.
Since an interface to the CPU clock is not part of the Fortran 90 standard, the availability of clocks and clock precisions are implementation dependent. Not all clocks are available in all implementations. The logical arguments cpu_avail, user_avail, sys_avail and wall_avail return TRUE if the respective clock is available in this implementation.
The precision (the shortest time interval that can be measured) of the clocks also varies between implementations. The real variables cpu_prec and wall_prec return the precision of the CPU and wall clocks, in seconds. It is assumed that the user and sys clocks have the same precision as the CPU clock. If the CPU clock is not available, then cpu_prec will return 0., and similar for the wall clock.
The character string version returns the version number of M_StopWatch.
If present, the optional intent OUT integer argument err returns a status code. The code is the sum of the values listed below.An error message will be printed to a specified I/O unit (unit 6 by default) if print_errors is TRUE (default is TRUE). The error message contains more detail about the cause of the error than can be obtained from just the status code, so you should set print_errors to TRUE if you have trouble determining the cause of the error.
If abort_errors is TRUE (default is FALSE), the program will terminate on an error condition. Otherwise, the program will continue execution but the requested value(s) might not be returned.
See option_stopwatch(3) for further information on print_errors, abort_errors and I/O units.
The relevant status codes and messages are:
0 No errors; execution successful.
512 Failed to allocate required memory. This error occurs if the Fortran allocate statement returns a nonzero status indicating that memory could not be allocated. Avoid memory leaks by always destroying watches and groups before recreating them, and destroying local variable watches and groups before returning from a subroutine.
logical user_is_there real cpu_preccall inquiry_stopwatch(user_avail=user_is_there) call inquiry_stopwatch(cpu_prec=cpu_prec)
The first call determines if the user clock is available in this implementation. The second call determines the shortest time that can be measured by the CPU clock.
None known.
William F. Mitchell<EMAIL_ADDRESS>National Institute of Standards and Technology
M_stopwatch(3), create_watchgroup(3), create_watch(3), destroy_watchgroup(3), destroy_watch(3), end_pause_watch(3), join_watchgroup(3), leave_watchgroup(3), option_stopwatch(3), pause_watch(3), print_watch(3), read_watch(3), reset_watch(3), start_watch(3), stop_watch(3)
| M_StopWatch 1.1 | INQUIRY_STOPWATCH (3) | September 22, 2017 |


ORACLE9i INSTALLATION AND GUS ARCHITECTURE DOCUMENT
AT Center for Tropical and Emerging Global Diseases
Chetna Warade
<EMAIL_ADDRESS><EMAIL_ADDRESS>To install Genomics Unified Schema following the are the softwares/packages required:
First lets take a step by look at the installation process.
CHAPTER 1
ORACLE 9i
Important Note: Some browsers will uncompress the files but leave the extension the same (gz) when downloading. If the above steps do not work for you, try skipping step 1 and go directly to step 2 without changing the filename. Eg. "cpio -idmv <Linux9i_Disk1.cpio.gz"
c. Create a user id in the oracle website. This user id is very useful for
debugging purposes. With this user id one can use the online documentation.
2) Installation of following modules from Oracle9i Enterprise Edition:
Oracle9i Database - Data Warehouse Oracle9i Client - Administrator - Runtime Oracle9i Management and Integration - Oracle Management Server - Oracle Internet Directory (failed installation)
3) Preinstallation steps:
Setup Tasks to Perform as root User
S11kernelpara -> /etc/init.d/kernelpara.sh In /etc/rc.d/rc3.d create symbolic link
S11kernelpara -> /etc/init.d/kernelpara.sh
Login Name: oracle Primary GID: 510 (dba) Secondary GID: 511 (oinstall) Home directory: /home/oracle
Setup Tasks to Perform as oracle User
DISPLAY The name, server number and screen number where of the system where Oracle Universal Installer display its GUI PATH Shell's search path for executables
4) Installation
Oracle Universal Installer
If this is the first time any Oracle9i product has been installed on the current system, the File Locations window appears. Specify the base directory where you want to install the Oracle software. i.e /home/oracle/OraHome1
The File Locations window appears. Do not change the text in the Source field. The Source field specifies the location of the installation files.
You must install Oracle9i products into a new Oracle home directory. You cannot install Oracle9i products into a directory that contains older versions of the software.
After selecting Oracle9i database from the Available Products window, the Installation Types window appears. - Select Enterprise, Standard, then click Next. Oracle9i Enterprise Edition Installation 1. Select the appropriate database and click Next. If you select... Then Oracle Universal Installer... General Purpose Installs a preconfigured database optimized for general purpose usage. Transaction Processing Installs a preconfigured database optimized for transaction processing. Data Warehouse Installs a preconfigured database optimized for data warehousing and OLAP. Customized Allows you to create a customized database. This option takes longer than the pre-configured options. Software Only Installs software only and does not run any configuration tools. NOTE - I selected Data Warehouse option. GUS is a Dataware House - Click Next. - The Database Identification window appears. - Enter the Global Database Name and System Identifier (SID) in the appropriate fields: i.e GUS (TGUS) - Click Next. The Database File Location window appears. - In the Directory for Database Files field, enter the directory location of the database file, i.e /db_storage. - Click Next. The Database Character Set window appears Choose the database character set that you want to use from the available options i.e default - Click Next. The Summary window appears. - Review the information to ensure that you have enough disk space and click Install. The Install window appears and displays a progress meter. The Installer goes through the install and relinking phases, so the meter adjusts for each phase completion. NOTE - It takes a while for completion. - Run the root.sh script when prompted. The Installer creates the root.sh script in the Oracle home directory and prompts you to run the script when it finishes installing Oracle products. Log in as the root user and run the script. The root.sh script sets the necessary file permissions for Oracle products and performs other root-related configuration activities. To run the root.sh script use the following commands: # cd $ORACLE_HOME # ./root.sh When the root.sh script runs successfully, return to the Oracle Universal Installer, and click OK in the Alert window.
Click Exit to exit the Oracle Universal Installer, or click Next Install to install additional products. Selecting Next Install returns you to the Oracle Universal Installer File Locations window.
5. Post Installation
Configuration Tasks to Perform as the root User
-Automating Database Startup and Shutdown The dbstart and dbshut scripts are located in the $ORACLE_HOME/bin directory
Perform the following tasks to set up the dbstart and dbshut scripts so that they are called at system startup. This process must be completed for every new database that you want to configure for automated startup and shutdown.
ORACLE_SID:ORACLE_HOME:{Y|N}
In the preceding command, Y or N specifies whether you want the dbstart and dbshut scripts to start up and shut down the database. For each database that you want to start up, find the ORACLE_SID entry identified by the sid in the first field. Change the last field for each to Y.
2. In the /etc/rc.d/init.d directory, create a dbora script.
3. Create symbolic links to the dbora script in the appropriate run-level
script directories, as follows: /etc/rc.d/rc0.d/K10dbora /etc/rc.d/rc3.d/S30dbora /etc/rc.d/rc4.d/S30dbora /etc/rc.d/rc5.d/S30dbora
Configuration Tasks to Perform as the oracle User
umask 0022
EPC_DISABLED=F export EPC_DISABLED ORACLE_BASE=/db_storage/Oracle export ORACLE_BASE ORACLE_HOME=/home/oracle/OraHome1 export ORACLE_HOME CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/product/jlib export CLASSPATH LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH ORACLE_SID=GUS export ORACLE_SID TNS_ADMIN=$ORACLE_HOME/network/admin export TNS_ADMIN DISPLAY=mango.ctegd.uga.edu:0.0 export DISPLAY HOME=/home/oracle export HOME PATH=:$ORACLE_HOME/bin:/usr/local/netscape:/usr/local/Acrobat5/bin/:$PATH:$HOME/bin export PATH unset USERNAME
Post-Installation for Installed Oracle Products
Basic configuration of Oracle Net Services is done by Oracle Net Configuration Assistant when it is started by Oracle Universal Installer during installation.
Verify and complete your initial configuration with the following steps:
listener_name 1521/tcp #Oracle Net listener i.e LISTENER 1521/tcp In the preceding command, 1521 is the default port number. If you chose a different port when you configured the Oracle Net listener, specify that port in the /etc/services file. 2. Check the status of the listener following the installation by using the following command: $ lsnrctl status listener_name i.e $ /home/oracle/OraHome1/bin/lsnrctl status LISTENER The listener_name field is required if the listener has a name other than the default listener. If the listener is not running, start it by using the following command: $ lsnrctl start listener_name i.e $ /home/oracle/OraHome1/bin/lsnrctl start LISTENER
3. Install and configure Oracle client software on a remote system, if
necessary, then start SQL*Plus to test the connection to the server.
$ sqlplus username/password@net_service_name i.e sqlplus scott/tiger@gus If you can successfully connect to the server with SQL*Plus, you have established network connectivity over TCP/IP.
5. Using Oracle Net Configuration Assistant After installation is complete, a more detailed configuration can be accomplished using the Oracle Net Configuration Assistant by using the following command in the $ORACLE_HOME/bin directory:
$ netca
Oracle Net Configuration Assistant configures the Oracle client/server network environment. It modifies the configuration files located in the default $ORACLE_HOME/network/admin directory. Review the Oracle Net Configuration Assistant procedure for your product installation choice.
Oracle9i Database Enterprise Edition and Standard Edition Installation
For Enterprise and Standard installations, the Oracle Net Configuration Assistant performs the following task:
Configures the Oracle Net server environment by configuring the following files: listener.ora: Oracle Net Services configures a listener with the name and protocol address you select. Oracle Net Services also configures a protocol address and static service information for external procedures. sqlnet.ora: Oracle Net Services configures the server's network domain as the default domain, which is the same as the network domain of your system. The domain is automatically appended to any unqualified net service name given in the connect string. The sqlnet.ora file also configures the naming methods the server uses to resolve a name to connect descriptor. tnsnames.ora: Oracle Net Services creates a net service name entry to use for external procedure connections.
6. Using Database Configuration Assistant Start Database Configuration Assistant by using the dbca command located in the $ORACLE_HOME/bin directory:
$ dbca
Database Configuration Assistant enables you to copy an Oracle9i preconfigured database, or create a fully customized database to match your selected environment and database configuration. It starts automatically after Oracle9i software has been installed during Oracle9i installation.
When installing Oracle9i software using any database configuration option other than the Custom and Software Only, the Oracle Universal Installer prompts for a global database name and System Identifier (SID). After Oracle9i installation is completed, the Database Configuration Assistant uses this information to create the database. In addition, the Database Configuration Assistant automatically configures the static service information for the Oracle9i database in the listener.ora file.
In our case we need Data Warehouse option: If you select this, the Database Configuration Assistant creates a database that is fully enabled for data warehousing applications. The OLAP option, consisting of support for analytic workspaces and the OLAP catalog metadata repository (CWMLite), is included in the database.
7. Using Oracle Enterprise Manager Configuration Assistant Oracle Enterprise Manager Configuration Assistant is used to configure the local Oracle Management Server. You can configure the local Oracle Management Server by creating, upgrading or deleting an Oracle Enterprise Manager repository.
Start OEM by
$ oemapp console
8. Installation logs are generated in the directory /home/oracle/oraInventory/logs
Logs can be viewed to preview what options were selected during installation.
9. Whenever a new database is created system file called as initYourDataBaseName.ora is created in the directory $ORACLE_HOME/dbs.
Alternative:
CREATING A SERVER PARAMETER FILE
The server parameter file must initially be created from a traditional text initialization parameter file. It must be created prior to its use in the STARTUP command. The CREATE SPFILE statement is used to create a server parameter file. You must have the SYSDBA or the SYSOPER system privilege to execute this statement.
The following example creates a server parameter file from initialization parameter file /u01/oracle/dbs/init.ora. In this example no SPFILE name is specified, so the file is created in a platform-specific default location and is named spfile$ORACLE_SID.ora.
CREATE SPFILE FROM PFILE='/u01/oracle/dbs/init.ora';
Another example, below, illustrates creating a server parameter file and supplying a name.
CREATE SPFILE='/u01/oracle/dbs/test_spfile.ora' FROM PFILE='/u01/oracle/dbs/test_init.ora';
The server parameter file is always created on the machine running the database server. If a server parameter file of the same name already exists on the server, it is overwritten with the new information.
Oracle recommends that you allow the database server to default the name and location of the server parameter file. This will ease administration of your database. For example, the STARTUP command assumes this default location to read the parameter file.
When the server parameter file is created from the initialization parameter file, comments specified on the same lines as a parameter setting in the initialization parameter file are maintained in the server parameter file. All other comments are ignored.
The CREATE SPFILE statement can be executed before or after instance startup. However, if the instance has been started using a server parameter file, an error is raised if you attempt to recreate the same server parameter file that is currently being used by the instance.
Note:
When you use the Database Configuration Assistant (DBCA) to create a database, it can automatically create a server parameter file for you.
10. Starting up the database using the oracle user login. Login as oracle user.
$sqlplus "/ as sysdba" Because this is considered as the most secure oracle login no password is asked.
SQL> startup
STARTUP USAGE
Starts an Oracle instance with several options, including mounting, and opening a database.
STARTUP options | migrate_options
where options has the following syntax:
[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname] |
[ OPEN [open_options] [dbname] ] |
NOMOUNT ]
where open_options has the following syntax:
READ {ONLY | WRITE [RECOVER]} | RECOVER
and where migrate_options has the following syntax:
[PFILE=filename] MIGRATE [QUIET]
BUGS
Whenever oracle user logs in, should set the ORACLE_SID env variable
$ ORACLE_SID=GUS
$ export ORACLE_SID
$ sqlplus /nolog
CHAPTER 2
GUS 3.0 SCHEMA INSTALLATION
GUS 3.0 source code/binaries (doesn't matter as PERL is used) are available at http://cvsweb.sanger.ac.uk/ under project name GUS. Follow the cvs instructions on the web site.
There are two domains in GUS 3.0 a project domain and a central
place for gus installation. The GUS build system (ANT based) allows
users to install latest copies of the source at one central location
(also accessible for all users on the system). More information is
available http://www.gusdb.org/documentation/install-setup.html
SCHEMA INSTALLATION:
In order to install the GUS 3.0 schema in the database create a new database in Oracle using instructions for Oracle 9i in chapter 1 or use an existing Oracle database. Use the oracle user account "sys" for creating the GUS 3.0 schema and users. Run the script create-db.sh after modifying the sys password (depending on what passwd you have selected for your database) in it. The script create-db.sh creates five schemas/users Core,SRes, DoTS, TESS and RAD3 with passwords password1, password2, password3, password4 and password5 respectively for simplicity. It is recommended that the database administrator should change the passwords for security reasons.
CHAPTER 3
JAVA 2 PLATFORMS
Following are the Java Platforms required for GUS user/www interface development.
JAVA 2 STANDARD EDITION - J2SDK 1.4.1_01
Download Java 2 SDK, Standard Edition 1.4.1_01 ----------------------------------------------------------------- Go to web page http://java.sun.com/j2se/1.4.1/download.html Click on the "Download" link in the row that contains Linux self- extracting file and column SDK. Read the license agreement and if you agree with it Click on Accept. Click on the link "Download j2sdk-1_4_1_01-linux-i586.bin" Save this file to your disk. Refer to the link for installation help at (if required) http://java.sun.com/j2se/1.4.1/install-linux.html 1) Check the download file size. 2) Copy j2sdk-1_4_1_01-linux-i586.bin to the /usr/local directory to provide java environment system-wide. 3) Run j2sdk-1_4_1_01-linux-i586.bin Unbundling the software automatically creates a directory called j2sdk1.4.1_01. Note that if you choose to install the Java 2 SDK into system-wide location such as /usr/local, you must first become root to gain the necessary permissions. If you do not have root access, simply install the Java 2 SDK into your home directory, or a subdirectory that you have permission to write to.
JAVA 2 ENTERPRISE EDITION - J2SDKEE 1.3.1
Download Java 2 SDK, Enterprise Edition 1.3.1 ----------------------------------------------------------------- Go to web page http://java.sun.com/j2ee/download.html Under the section "1.3.1 FCS Release January 31, 2002" click the link "Software & Documentation" or http://java.sun.com/j2ee/sdk_1.3/ Scroll down the web page and select a platform (Linux) and click continue. Read the license agreement and if you agree with it Click on Accept. Select a mode of tranfer either HTTP or FTP. Save this file to your disk. Refer to the link for installation help at (if required) http://java.sun.com/j2ee/sdk_1.3/install.html#linux_soft 1) Check the download file size. 2) cd /usr/local Unpacking the bundle automatically creates a subdirectory in this directory called j2sdkee1.3.1. 3) The download bundle for the software is in the j2sdkee-1_3_1-linux.tar.gz file. To uncompress and unpack the download bundle and run this command: tar xvzf j2sdkee-1_3_1-linux.tar.gz The j2sdkee1.3.1 directory is created and the software is installed into it. 4) Set the environment variables. Before running the J2EE SDK, you must set these environment variables in your .profile or .bash_profile file of your login: J2EE_HOME - the directory where you've installed this release. JAVA_HOME - the directory where the Java 2 SDK Standard Edition is installed. PATH - include the bin directory beneath the directory where you've installed this release. If you need help setting these variables, paste the link http://java.sun.com/j2ee/sdk_1.3/install.html#env-var. You need to logout and login again for these changes to take effect.
JAVA WEB SERVICES DEVELOPER PACK - JWSDP 1_0_01
Download Java Web Services Developer Pack 1.0_01 ----------------------------------------------------------------- Go to web page http://java.sun.com/webservices/downloads/webservicespack.html Scroll down the web page and select platform as UNIX because there is no specific differences in Linux/UNIX version of JWSDP and click continue.
Read the license agreement and if you agree with it Click on Accept.
Select a mode of tranfer either HTTP or FTP.
Save this file to your disk.
Refer to the link for installation help at (if required) http://java.sun.com/webservices/downloads/install-unix.html 1) Check the download file size If you saved the self-installing executable to disk without running it from the download page at the Java Software website, check to see that you have the complete file: example: jwsdp-1_0_01-unix.sh 31,732,238 bytes 2) Run the Java WSDP installer $ /bin/sh jwsdp-1_0_01-unix.sh Installed Directory Tree Verify that the Java WSDP has the directory structure shown below. * jwsdp-1_0_01 * LICENSE * bin * common * conf * config * docs * images * lib * logs * samples * server * services * shared * temp * tools * unist * webapps * work * xsl
3) Update the PATH variable
You can run the Java WSDP without setting the PATH variable, or you can optionally set it as a convenience.
4) Set the PATH variable if you want to be able to conveniently run the Java WSDP executables (startup.sh, shutdown.sh, ant, etc.) from any directory without having to type the full path of the command. If you don't set the PATH variable, you need to specifythe full path to the executable every time you run it, such as: $ /home/myuser/jwsdp-1_0_01/bin/startup.sh It's useful to set the PATH permanently so it will persist after rebooting. To set the PATH permanently, add the full path of the bin directory in the Java WSDP installation directory to the beginning of your PATH variable. Typically this full path looks something like /home/myuser/jwsdp-1_0_01/bin.
Download Ant build tool version 1.5.1 for building (compilation) and installation of source code and binaries on the machine from http://ant.apache.org/bindownload.cgi.
Note: GUS 3.0 is tested with Ant 1.5.1 version and is used as the build tool at CBIL and CTEGD.
SETTING ENVIRONMENT/LOGIN FOR GUS 3.0
A sample .bash_profile file for using Oracle9i, GUS schema, Java and Perl in entirety is:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export ORACLE_HOME=/home/oracle/OraHome1
export J2EE_HOME=/usr/local/j2sdkee1.3.1
export JAVA_HOME=/usr/local/j2sdk1.4.1_01
export JWSDP_HOME=/usr/local/jwsdp-1_0_01
export TOMCAT_PATH=:/usr/local/jwsdp-1_0_01/common/lib/servlet.jar:/usr/local/jwsdp-1_0_01/docs/tutorial/examples/cb/jaxrpc/build/client:/usr/local/jwsdp-1_0_01/docs/tutorial/examples/cb/jaxrpc/build/server:/usr/local/jwsdp-1_0_01/docs/tutorial/examples/cb/jaxrpc/build/service-class:/usr/local/jwsdp-1_0_01/docs/tutorial/examples/cb/jaxrpc/build/registry
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar:$TOMCAT_PATH
export PATH=:/usr/local/netscape:/usr/local/Acrobat5/bin/:$JAVA_HOME/bin:$JWSDP_HOME/bin:$ORACLE_HOME/bin:$PATH:$HOME/bin
export GUS_HOME=/home/gusdev/gus.2.0.1/source-code/gusdev-src-sep-10-2002
export LD_LIBRARY_PATH=/home/oracle/OraHome1/lib
export PERL5LIB=$GUS_HOME/perl/lib:$GUS_HOME/lib
export CATALINA_HOME=/usr/local/jwsdp-1_0_01
export GUS_CFG=$GUS_HOME
export DBI_DSN="dbi:Oracle:host=mango.ctegd.uga.edu;sid=GUS"
export ORACLE_SID=GUS
NOTE
1) Setting up the env variable CLASSPATH is very important otherwise it
may cause problems in using java compilers and java tools like run-time
linker/debugger.
2) Refer http://www.gusdb.org/documentation/install-setup.html for setting environment variables for GUS 3.0
JAVA SERVLET INTERFACE INSTALLATION INSTRUCTIONS: GENERAL
-Download the external Java libraries mentioned in the prerequisites. -Edit $GUS_HOME/www/install/installServletNew.pl; the section labeled "EDIT THIS SECTION AS NEEDED" contains a number of variables that must be set to tell the script where to find and place a number of files.
-Set the ORACLE_HOME and LD_LIBRARY_PATH environment variables as described in the
prerequisites; both in the environment of the user that will run Tomcat and also
in the Apache httpd.conf file (with 'SetEnv' directives)
-cd into the $GUS_HOME/www/install directory and run installServletNew.pl
-Edit the installed web.xml file as neeeded
-Start the servlet engine
-Check the following logs for any errors:
/var/log/httpd/error_log (i.e., httpd error log)
$CATALINA_HOME/logs/*
servlet log file (location depends on what is specified in web.xml)
JAVA SERVLET INTERFACE INSTALLATION INSTRUCTIONS: GUS 3.0
In addition to following the steps the section JAVA SERVLET INTERFACE INSTALLATION INSTRUCTIONS: GENERAL you need to download tag libraries (binary) from http://www.apache.org/dist/jakarta/taglibs/standard/binaries/ for GUS 3.0
CHAPTER 4
LEARNING GUS 3.0
GUS 3.0 source code/binaries (doesn't matter as PERL is used) are
available at http://cvsweb.sanger.ac.uk/ under project name GUS. Follow
the cvs instructions on the web site.
PERL MODULES:
Following are the PERL modules needed for GUS 3.0 and are available at http://cpan.org:
Note: The latest GD 2.07 is available but requires libgd 2.0.12 or higher located in /usr/lib directory (default linux installation - may vary depending on system configuration)
Background:
Suppose in a bioinformatics laboratory there are different projects
undertaken and there are several groups working on projects. A
GUS/database user belongs to a group (e.g. to the bioinformatics lab)
and can work on several projects at the same time. Accordingly then
information goes to table Core.ProjectInfo, Core.GroupInfo and
Core.UserInfo (read further for more information).
Creating GUS 3.0 users:
There are two types of users in GUS system: an Oracle/database user and
the GUS 3.0 user. The Oracle/DB user account allows user to login into
Oracle database using command line utility like SQLPlus and perform
various database related operations. A GUS user account is created
using both Oracle user account and the machine/system/operating system
user account. This two level user account helps maintain tight security
and controlled information flow within the organization and GUS as well
(GUS/database could be synonyms in this case).
Following are steps required for GUS Administrator/DBA to start GUS 3.0 from scratch (could also create am .sql script): INSERT INTO CORE.AlgorithmParamKeyType VALUES(0,'string',SYSDATE,1,1,1,1,1,1,1,1,1,1); INSERT INTO CORE.AlgorithmParamKeyType VALUES(1,'float',SYSDATE,1,1,1,1,1,1,1,1,1,1); INSERT INTO CORE.AlgorithmParamKeyType VALUES(2,'int',SYSDATE,1,1,1,1,1,1,1,1,1,1); INSERT INTO CORE.AlgorithmParamKeyType VALUES(3,'ref',SYSDATE,1,1,1,1,1,1,1,1,1,1); INSERT INTO CORE.AlgorithmParamKeyType VALUES(4,'boolean',SYSDATE,1,1,1,1,1,1,1,1,1,1); INSERT INTO CORE.AlgorithmParamKeyType VALUES(5,'date',SYSDATE,1,1,1,1,1,1,1,1,1,1);
NOTE: It is imperative that the DBA will set the read/write permission according to the security and row_user_id, row_group_id and row_project_id depending on custom data.
Following are steps required for GUS Administrator/DBA to create GUS 3.0 users:
Help can be viewed by e.g.
ga GUS::Common::Plugin::LoadTaxon --help
Debugging can be done using --debug, --verbose or --veryVerbose options and not using --commit option. By default --commit is set as off.
NOTE: use all the three options of ga GUS::Common::Plugin::LoadTaxon --gencode, --names and --nodes at the same time/together
2) GenBank
e.g. Sres.ExternalDatabase
insert into sres.externaldatabase values('GenBank (nrdb)','genbank (nrdb)', SYSD ATE,1,1,1,1,1,0,6,3,2,1);
Sres.ExternalDatabaseRelease
insert into sres.externaldatabaserelease values(135,1,15-APR-03,'Tcruzi', SYSDATE,1,1,1,1,1,0,6,3,2,1);
and Dots.SequenceType (create a .sql script)
insert into Dots.sequencetype values (1,'DNA',null,null,1,1,'DNA', 'DNA,unkown standedness',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (2,'RNA',null,null,1,1,'RNA', 'RNA,unkown standedness',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (3,'DNA',null,'ds',2,1,'ds-DNA', 'double stranded DNA',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (4,'DNA',null,'ss',2,1,'ss-DNA', 'single stranded DNA',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (5,'DNA',null,'ss',2,2,'ss-RNA', 'single stranded RNA',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (6,'RNA',null,'ds',2,2,'ds-RNA', 'single stranded RNA',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (7,'RNA','mRNA','ss',3,5,'mRNA', 'mRNA',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (8,'RNA','est','ss',3,5,'EST', 'EST - could be mRNA, rRNA...',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (9,'RNA','tRNA','ss',3,5,'tRNA', 'tRNA',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (10,'RNA','rRNA','ss',3,5,'rRNA', 'rRNA',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (11,'unknown',null,null,1,11,'unknown', 'unkown',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (12,'RNA','predicted_mRNA','ss',2,1,'predicted_mRNA', 'mRNA sequence predicted by an algorithm from genomic DNA',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (13,'virtual',null,null,1,null,'virtual', 'virtual nuclieic acid sequence',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (14,'DNA','GSS','ds',3,3,'GSS', 'Genome Survey Sequence',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Dots.sequencetype values (15,'DNA','oligonucleotide','ss',3,4,'oligonucleotide', 'synthetic single stranded oligonucleotide ',SYSDATE,1,1,1,1,1,0,6,3,2,1);
3) GOOntology
e.g. SRes.ExternalDatabase
##These id values 92,93,94 are used because they were the next in order.. insert into Sres.Externaldatabase values(92,'GO Function','go function',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Sres.Externaldatabase values(93,'GO Component','go component',SYSDATE,1,1,1,1,1,0,6,3,2,1); insert into Sres.Externaldatabase values(94,'GO Process','go process',SYSDATE,1,1,1,1,1,0,6,3,2,1);
SRes.GORelationshiptype
insert into sres.GORelationshiptype values(1, 'isa',SYSDATE, 1,1,1,1,1,0,6,3,2,1); insert into sres.GORelationshiptype values(2, 'partof',SYSDATE, 1,1,1,1,1,0,6,3,2,1);
NOTE: Since we loaded GO data from scratch we encountered problems in ancestor_go_term_id in table SRes.GOTerm. Login as SReS in the database and modify as following:
alter table goterm modify (ancestor_go_term_id number(10) null);
NOTE: 05/22/2003
We had comment off line 500 to overcome an error but I guess in future this willgo away as GUS is constantly evolving.
(line 500 of LoadGoOntology.pm):
my $ontologyGoTerm = GUS::Model::SRes::GOTerm->new({
go_id => $rootGoId,
external_database_release_id => $extDbRelId,
source_id => $rootEntry->getId(),
name => $rootEntry->getName(), #just the name
definition => $rootEntry->getName(),
minimum_level => 0,
maximum_level => 0,
number_of_levels => 1,
ancestor_go_term_id => $tempAncestorId, <=== COMMENT THIS LINE
} );
4) TIGR XML data
Under Construction


Project 1: COVID INFORMA - Interactive COVID 19 World Map.
COVID app that tracks live cases internationally.
Holiday Budget Tracker - Happy Holi-PAYS!
Holiday themed budget app that is ideal for organizing all the user's various holiday needs.
Sorteo
Platform that allows social media infuluencers to host, track and create giveaways/campaigns that randomly selects winners and transparency for followers when signing up.


#include <Executive.h>
The Executive class. This deals with file IO and class interactions in the backend.
◆ DataFile
An enum representing the various information types that are saved.
| Enumerator |
|---|
| df_event | Represents Event text files.
|
| df_record | Represents Event record files.
|
| df_user | Represents User text files.
|
| df_eventList | Represents the event list text file.
|
◆ Executive()
The empty constructor. This builds the Executive class.
- Precondition
- None.
- Postcondition
- Executive is created. If data and EventList.txt don't exist, they are created. Executive reads various files in data if they exist to recreate objects.
◆ ~Executive()
| Executive::~Executive |
( |
| ) |
|
The empty destructor. This destroys the Executive class.
- Precondition
- Executive exists.
- Postcondition
- Executive is destroyed along with any objects it created.
◆ addUserTo()
| bool Executive::addUserTo |
( |
std::string |
time, |
|
|
std::list< Record > * |
List |
|
) |
| |
This method will add current user to a certain time block
- Parameters
-
| time | the time block |
| List | the pointer to the record list |
- Precondition
- the record list must valid
- Returns
- : bool – TRUE if the user have be added to the record
◆ createRecordList()
| std::list< Record > * Executive::createRecordList |
( |
std::list< std::string > * |
timeList | ) |
|
This method should be called when creating a new event
- Parameters
-
| timeList | a list of time blocks |
- Postcondition
- timeList will be deleted
- Returns
- a list of Record objects
◆ createUser()
| bool Executive::createUser |
( |
std::string |
uid, |
|
|
std::string |
pnm |
|
) |
| |
This method creates a user and writes basic information back out to a file.
- Parameters
-
| uid | user_name for the new user |
| pnm | real_name for the new user |
- Precondition
- user_<uid>.txt does not exist in the data/user directory
- Postcondition
- user_<uid>.txt is created in the data/user directory
- Returns
- TRUE if the file user_<uid> does not already exist, FALSE otherwise
◆ deleteEvent()
| bool Executive::deleteEvent |
( |
int |
event_id | ) |
|
This method removes an event.
- Parameters
-
| event_id | The id of the event to be deleted. |
- Precondition
- Executive exists and the event in question with the id exists.
- Postcondition
- An event is deleted in text files and in memory.
- Returns
- true if the event was deleted, false otherwise.
◆ doesFileExist()
| bool Executive::doesFileExist |
( |
DataFile |
type, |
|
|
std::string |
identifer = "" |
|
) |
| |
|
private |
This helper method verifies if a file exists.
- Precondition
- Executive exists
- Postcondition
- N/A, No changes occur.
- Parameters
-
| type | A value from the DataFile enum |
| identifer | The variable part of the file's name that we are trying to verify, like the "23" in "record_23.txt" or "Daniel" in "user_Daniel.txt" |
- Returns
- true if the file in question exists, false otherwise.
◆ generateEvent()
| int Executive::generateEvent |
( |
std::string |
name, |
|
|
std::string |
date |
|
) |
| |
| throw | ( | std::logic_error |
| ) | | |
This method creates an event and generates files representing it.
- Parameters
-
| name | The name of the event. |
| date | The date of the event. |
- Precondition
- Executive exists.
- Postcondition
- A new event is created in text files and in memory.
- Returns
- the id of the newly created event.
- Exceptions
-
| std::logic_error | if the event is invalid |
◆ getAttending()
| std::list< std::string > * Executive::getAttending |
( |
int |
eid | ) |
|
This method will return a list of username which are all users attending the given event.
- Parameters
-
- Returns
- a list of username
◆ getCurrentUser()
| User * Executive::getCurrentUser |
( |
| ) |
|
Retriever method which returns a pointer to current_user
- Precondition
- : none
- Postcondition
- : none
- Returns
- : User* – pointer to current_user member
◆ getEventByCreator()
| std::list< Event > * Executive::getEventByCreator |
( |
User |
u | ) |
|
This method returns a list of events created by a user
- Parameters
-
- Postcondition
- NA
- Returns
- A list of events created by the user parameter
◆ getEventByID()
| Event * Executive::getEventByID |
( |
int |
eid | ) |
|
| throw | ( | std::logic_error |
| ) | | |
This method returns a pointer to an event based on eid.
- Precondition
- eid is an int; ./data/users/info_<eid>.txt exists
- Postcondition
- none
- Returns
- A pointer to an event with information contained in info_<eid>.txt
- Exceptions
-
| Error | if info_<eid>.txt does not exist |
◆ getEventList()
| std::vector< Event > * Executive::getEventList |
( |
| ) |
|
This method returns a reference to the event list.
- Precondition
- Executive exists.
- Postcondition
- No changes occur.
- Returns
- a reference to the event list.
◆ getEventNum()
| int Executive::getEventNum |
( |
| ) |
|
The getter method of the event num. This gets a number to assign to a new event and increments it.
- Precondition
- Executive exists.
- Postcondition
- "event_num" is incremented prior to being returned.
- Returns
- The "event_num" .
◆ getFileName()
| std::string Executive::getFileName |
( |
DataFile |
type, |
|
|
std::string |
identifer = "" |
|
) |
| |
|
private |
This helper method should get the file name of data file given its parameters.
- Precondition
- Executive exists
- Postcondition
- N/A, No changes occur.
- Parameters
-
| type | A value from the DataFile enum |
| identifer | The part of the name of the file that is unique to a specific file such as the number in info_<event num> or the username in user_<username>. |
- Returns
- filename The file name of the event information text file.
◆ getUser()
| User * Executive::getUser |
( |
std::string |
uid | ) |
|
| throw | ( | std::logic_error |
| ) | | |
This method will return a pointer to a User whose information will be extracted from a user file with identifier uid.
- Precondition
- uid is a valid string; ./data/users/user_"uid".txt exists
- Postcondition
- none
- Parameters
-
| uid | The username of the user you want. |
- Returns
- A pointer to a user with information contained in the user_uid text file.
- Exceptions
-
| std::logic_error | if the user in question does not exist in files. |
◆ isAttending()
| bool Executive::isAttending |
( |
int |
eid | ) |
|
This method will check if current user is attending a event.
- Parameters
-
- Postcondition
- none
◆ readRecord()
| std::list< Record > * Executive::readRecord |
( |
int |
event_id | ) |
|
This method read through a existing record file and create a list pointer of record.
- Parameters
-
- Precondition
- the record file should exist.
- Postcondition
- none
- Returns
- a list of Record
◆ rebuildEvent()
| void Executive::rebuildEvent |
( |
std::string |
filename | ) |
|
|
private |
This helper method rebuilds events given a text file.
- Precondition
- The file should should actually exist.
- Postcondition
- The event information in the file is made into an event and put into the event_list.
- Parameters
-
| filename | The file name of the event information text file. |
◆ removeRecord()
| bool Executive::removeRecord |
( |
int |
eid | ) |
|
This method will remove a Record file.
- Parameters
-
- Precondition
- the file should exist
- Postcondition
- remove the file
◆ removeUserFrom()
| bool Executive::removeUserFrom |
( |
std::string |
time, |
|
|
std::list< Record > * |
List |
|
) |
| |
This method will remove current user from a certain time block
- Parameters
-
| time | the time block |
| List | the pointer to the record list |
- Precondition
- the record list must valid
- Returns
- : bool – TRUE if the user have be removed from the record
◆ setCurrentUser()
| bool Executive::setCurrentUser |
( |
std::string |
uid | ) |
|
Method which sets the current_user variable based on uid If a matching file "user_<uid>.txt" is found, then the information contained in that file is written to the *(current_user)
- Parameters
-
| uid | The username to be searched for |
- Precondition
- : uid is a valid string
- Postcondition
- : current_user is set with appropiate parameters if file is found; is set to empty otherwise
- Returns
- : bool – TRUE if user_<uid> is found, FALSE otherwise
◆ sortEventList()
| void Executive::sortEventList |
( |
| ) |
|
This helper method sorts the event list by dates.
- Precondition
- Executive exists
- Postcondition
- N/A, No changes occur.
◆ storeIntsFromString()
| void Executive::storeIntsFromString |
( |
std::list< int > & |
int_list, |
|
|
std::string |
int_string |
|
) |
| |
|
private |
Converts a csv string of integer values to an integer list
- Parameters
-
| int_list | List to store the values to |
| int_string | csv string of integer values |
- Precondition
- : int_string is a csv list of integer values
- Postcondition
- : int_list contains integer converted values contained in int_string
- Returns
- : none
◆ writeCurrentUser()
| bool Executive::writeCurrentUser |
( |
| ) |
|
Method which re-writes information about current_user back out to it's file
- Precondition
- : current_user has a nonempty user_name
- Postcondition
- : user_<current_user -> user_name>.txt is updated with most recent data
- Returns
- : TRUE if operation completed successfully, FALSE otherwise
◆ writeRecord()
| void Executive::writeRecord |
( |
int |
eid, |
|
|
std::list< Record > * |
List |
|
) |
| |
This method will write a Record file of a given list of Record.
- Parameters
-
| eid | the event id |
| List | the list of Record |
- Postcondition
- the List will be deleted and saved in files.
◆ currentUser
| User* Executive::currentUser |
|
private |
User pointer which points to information about the User object of the current session
◆ eventList
| std::vector<Event>* Executive::eventList |
|
private |
This is a vector of Events. This contains all Events that are available.
◆ eventNum
| int Executive::eventNum = 0 |
|
private |
Internal running tally of event identifiers; should make provisions so that no two events get assigned the same event identifier
The documentation for this class was generated from the following files:


Some stuff about Montagues!
Some stuff about Capulets!
Some stuff about Heavy!
Some stuff about Thief!
Some stuff about Strategist!
Some stuff about Scientist!
Some stuff about Survivalist!