Specific Errors and Warnings
What does the warning "WARN com.tc.bytes.TCByteBufferFactory - Asking for a large amount of memory..." mean?
If you see this warning repeatedly, objects larger than the recommended maximum are being shared in the Terracotta cluster. These objects must be sent between clients and servers. In this case, related warnings containing text similar to Attempt to read a byte array of len: 12251178; threshold=8000000 and Attempting to send a message (com.tc.net.protocol.delivery.OOOProtocolMessageImpl) of size may also appear in the logs.
If there are a large number of over-sized objects being shared, low-memory issues and degradation of performance may result.
In addition, if elements too large to fit in a client are cached, the value will be stored on the server, thus degrading performance (reads will be slower). In this case, a warning is logged.
When starting a Terracotta server, why does it throw a DBVersionMismatchException
The server is expecting a Terracotta database with a compatible version, but is finding one with non-compatible version. This usually occurs when starting a Terracotta server with an older version of the database. Note that this can only occur with servers in the restartable mode.
Why am I getting MethodNotFound and ClassNotFound exceptions?
If you've integrated a Terracotta product with a framework such as Spring or Hibernate and are getting one of these exceptions, make sure that an older version of that Terracotta product isn't on the classpath. With Maven involved, sometimes an older version of a Terracotta product is specified in a framework's POM and ends up ahead of the current version you've specified. You can use tools such as jconsole or jvisualvm to debug, or specify -XX:+TraceClassLoading on the command line.
If a ClassNotFound exception is thrown at startup, refer to the
Release and Platform Compatibility Information to ensure that you have a supported JDK (not JRE) installed.
When I start a Terracotta server, why does it fail with a schema error?
You may get an error similar to the following when a Terracotta server fails to start:
Error Message:
Starting BootJarTool...
2008-10-08 10:29:29,278 INFO - Terracotta 2.7.0, as of 20081001-101049
(Revision 10251 by cruise@rh4mo0 from 2.7)
2008-10-08 10:29:30,459 FATAL -
*******************************************************************************
The configuration data in the file at "/opt/terracotta/conf/tc-config.xml"
does not obey the Terracotta schema:
[0]: Line 8, column 3: Element not allowed: server in element servers
*******************************************************************************
This error occurs when there's a schema violation in the Terracotta configuration file, at the line indicated by the error text. To confirm that your configuration file follows the required schema, see the schema file included with the Terracotta kit. The kit includes schema files (*.xsd) for Terracotta, Ehcache, and Quartz configurations.
The Terracotta servers crash regularly and I see a ChecksumException.
If the logs reveal an error similar to com.sleepycat.je.log.ChecksumException: Read invalid log entry type: 0 LOG_CHECKSUM, there is likely a corrupted disk on at least one of the servers.
Why is java.net.UnknownHostException thrown when I try to run Terracotta sample applications?
If an UnknownHostException occurs, and you experience trouble running the Terracotta Welcome application and the included sample applications on Linux (especially Ubuntu), you may need to edit the etc/hosts file.
The UnknownHostException may be followed by "unknown-ip-address".
For example, your etc/hosts file may contain settings similar to the following:
127.0.0.1 localhost
127.0.1.1 myUbuntu.usa myUbuntu
If myUbuntu is the host, you must change 127.0.1.1 to the host's true IP address.
Note:
You may be able to successfully start Terracotta server instances even with the "invalid" etc/hosts file, and receive no exceptions or errors, but other connectivity problems can occur. For example, when starting two Terracotta servers that should form a mirror group (one active and one standby), you may see behavior that indicates that the servers cannot communicate with each other.
On a node with plenty of RAM and disk space, why is there a failure with errors stating that a "native thread" cannot be created?
You may be exceeding a limit at the system level. In *NIX, run the following command to see what the limits are:
ulimit -a
For example, a limit on the number of processes that can run in the shell may be responsible for the errors.
Why does the Terracotta server crash regularly with java.io.IOException: File exists?java.io.IOException: File exists?
Early versions of JDK 1.6 had a
JVM bug caused this failure. Update JDK to avoid this issue.
What does a warning about the ChangeApplicator or ServerMapApplicator mean?
If you see warning messages such as these:
WARN com.tc.object.applicator.ChangeApplicator.com.
terracotta.toolkit.collections.map.ServerMapApplicator -
ServerMap received delta changes for methods other than CLEAR
WARN com.tc.object.applicator.ChangeApplicator.com.
terracotta.toolkit.collections.map.ServerMapApplicator -
ServerMap shouldn't normally be broadcasting changes
unless it's a clear/destroy, but could be a resent txn after crash
The logging is telling you that there are changes being broadcasted to clients. Normally these are not broadcasted to clients, however in the event of a failover or active restart from disk, it is possible for transactions to be broadcasted. It is safe to ignore these warnings, however it would probably be a good idea to see if there really was an active server restart or failover, in case some other action is necessary.