I'd suggest shortening your event type literals.

On Tue, Jul 16, 2013 at 1:45 PM, Soheil Eizadi <seiz...@infoblox.com> wrote:

> I have code to delete the Plugin device from the system, when I try to
> execute this code I get an exception before my Command gets invoked in
> system code that tries to create an event. I debugged this to the event
> table underlying SQL definition. I wanted to know what the best practice
> was for CloudStack:
>
>   *   Update the Event Table definition to accommodate a longer Type Field
>   *   Limit my choice of naming to fit the existing 32 byte Event Field
>
> Ideally I wanted to change the event definition, but the change will
> impact database upgrade as we go from one release to another.
> -Soheil
>
> mysql> describe event;
>
> +-------------+---------------------+------+-----+-----------+----------------+
> | Field       | Type                | Null | Key | Default   | Extra
>    |
>
> +-------------+---------------------+------+-----+-----------+----------------+
> | id          | bigint(20) unsigned | NO   | PRI | NULL      |
> auto_increment |
> .....
> | type        | varchar(32)         | NO   | MUL | NULL      |
>    |
> .....
>
> +-------------+---------------------+------+-----+-----------+----------------+
> -------
>
>
> @Entity
>
> @Table(name="event")
>
> public class EventVO implements Event {
>
>
> ....
>
>     @Column(name="type")
>
>     private String type;
>
>
> ------
>
> ERROR [cloud.api.ApiServer] (183551903@qtp-729770861-5:) unhandled
> exception executing api command: deleteInfobloxDevice
> com.cloud.utils.exception.CloudRuntimeException: DB Exception on:
> com.mysql.jdbc.JDBC4PreparedStatement@59c7f05d: INSERT INTO event
> (event.type, event.state, event.description, event.created, event.user_id,
> event.account_id, event.domain_id, event.level, event.start_id,
> event.parameters, event.uuid, event.archived) VALUES
> (_binary'PHYSICAL.INFOBLOXCONTROLLER.DELETE', 'Scheduled', _binary'Deleting
> Infoblox Controller', '2013-07-16 04:11:58', 2, 2, 1, _binary'INFO', 0,
> null, _binary'eefc03f0-f60b-4450-a43a-319e66c15e94', 0)
> at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1342)
> ......
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too
> long for column 'type' at row 1
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4072)
>

Reply via email to