Hi folks,
I'm having an issue when placing multiple orders around the same time as
each other. To closely mimic my actual business process, I'm placing an
order for 1 configurable good, and since I'm using demo data, I'm using the
small PIZZA. This creates a production run after the order is placed.
I've configured jMeter to place orders in the ecommerce store for
DemoCustomer which consist of a small PIZZA (quantity 1), and have
configured 10 worker threads (to simulate users) placing this order (I can
make the jMeter test available if desired). Within seconds of the first
orders being placed, I see locks on the InventoryItem entity (and
occasionally ProductCalculatedInfo), however these locks continue to build
up and never seem to release. This results in either none, or very few users
being able to place orders. Even after waiting for 2 minutes, the locks are
not released, and the users continue to wait. Ultimately, I've found that I
need to restart postgreSQL and OFBiz in order to clear the locks, and get to
a state where orders can be placed again.
Interestingly, I've been able to trigger this behavior on 12.04.02,
12.04.05, and 13.07. I also tested this out using the OOTB derby instance
also, and while I don't have a way to examine the locks explicitly, I was
seeing results in jMeter which aligned with what I was seeing when the locks
were occurring in PostgreSQL.
With my setup, all of my configurations are default, out of the box unless
noted otherwise:
- out of box 12.04.02, 12.04.05, 13.07 instances loaded with demo data
(connection pool min pool size: 2, max pool size: 250)
- postgreSQL 9.3 with default configuration; increased max connections from
100 to 1000
I'm wondering if any of you have run into this issue before, or have any
tips on how this could be addressed.
Thanks!
I'm having an issue when placing multiple orders around the same time as
each other. To closely mimic my actual business process, I'm placing an
order for 1 configurable good, and since I'm using demo data, I'm using the
small PIZZA. This creates a production run after the order is placed.
I've configured jMeter to place orders in the ecommerce store for
DemoCustomer which consist of a small PIZZA (quantity 1), and have
configured 10 worker threads (to simulate users) placing this order (I can
make the jMeter test available if desired). Within seconds of the first
orders being placed, I see locks on the InventoryItem entity (and
occasionally ProductCalculatedInfo), however these locks continue to build
up and never seem to release. This results in either none, or very few users
being able to place orders. Even after waiting for 2 minutes, the locks are
not released, and the users continue to wait. Ultimately, I've found that I
need to restart postgreSQL and OFBiz in order to clear the locks, and get to
a state where orders can be placed again.
Interestingly, I've been able to trigger this behavior on 12.04.02,
12.04.05, and 13.07. I also tested this out using the OOTB derby instance
also, and while I don't have a way to examine the locks explicitly, I was
seeing results in jMeter which aligned with what I was seeing when the locks
were occurring in PostgreSQL.
With my setup, all of my configurations are default, out of the box unless
noted otherwise:
- out of box 12.04.02, 12.04.05, 13.07 instances loaded with demo data
(connection pool min pool size: 2, max pool size: 250)
- postgreSQL 9.3 with default configuration; increased max connections from
100 to 1000
I'm wondering if any of you have run into this issue before, or have any
tips on how this could be addressed.
Thanks!