Han*_*ans 1 mysql worklight-appcenter ibm-mobilefirst
我正在尝试在Windows 8.1上的Websphere Liberty服务器上部署iOS的worklight应用程序中心.但是当我尝试通过appcenter控制台添加IBMAppCenter.ipa时,我在服务器日志中遇到异常.
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. {prepstmnt 1563792952 INSERT INTO APPLICATION_STORAGE (CONTENT, AP_FK) VALUES (?, ?) [params=(InputStream) java.io.ByteArrayInputStream@5987916, (null) null]} [code=1118, state=42000]
Run Code Online (Sandbox Code Playgroud)
以下是重现我的问题的方案:
我尝试按照hjpotter92对"Mysql行大小太大"的更改限制的建议启用表APPLICATION_STORAGE的压缩,但没有任何运气.任何帮助将非常感激.
以下是APPLICATION_STORAGE表的定义,该表导致问题:
CREATE TABLE APPLICATION_STORAGE (ID INTEGER NOT NULL AUTO_INCREMENT, CONTENT LONGBLOB, AP_FK INTEGER, PRIMARY KEY (ID)) ENGINE = innodb;
Run Code Online (Sandbox Code Playgroud)
将innodb_log_file_size属性增加到256M解决了我的问题.显然,重做日志覆盖最近期的大斑点的检查点,如下解释:http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-20.html
重要更改:对于大型外部存储的BLOB字段,重做日志写入可能会覆盖最近的检查点.5.6.20补丁将重做日志BLOB写入的大小限制为重做日志文件大小的10%.5.7.5补丁解决了bug而没有施加限制.对于MySQL 5.5,该bug仍然是一个已知的限制.
由于推出的MySQL 5.6重做日志BLOB写的限制,innodb_log_file_size应设置为一个值大于10倍,你的表的行发现的最大的BLOB数据大小以及其他可变长度字段(VARCHAR,VARBINARY的长度和TEXT类型字段).如果不这样做可能会导致"行大小太大"错误.如果您的innodb_log_file_size设置已足够大或您的表不包含BLOB数据,则无需任何操作.(Bug#16963396,Bug#19030353,Bug#69477)