The jdbc cache stores auto-generate the table name used to store cache contents by prefixing the cache name with some specified/default prefix. However, if the cache name contains characters other than a letter, number, underscore, or period; the table creation fails.
In AS7, the cache name of a typical cache used for web sessions looks like: //default-host/mycontext This obviously generates a invalid table name.
If the table name were instead to be quoted (if supported by the DBMS (see java.sql.DatabaseMetaData#getIdentifierQuoteString()), then the table name generated using the above cache name would be valid.
If we don't want to always quote the table name, then perhaps this could be enabled via a quoteTableName flag?