Randy Yarger

Greenhorn
+ Follow
since Feb 13, 2007
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Randy Yarger

I'm debugging an application running on Tomcat 7 that is proving to be extremely unstable. I see three of the four typical causes for site failure regularly: runaway CPU consumption, deadlocked threads and OutOfMemory conditions (about the only thing I don't see is DAO connection issues).

In the heapdump for crashes that happen due to OutOfMemory, I consistently see that a large portion of the heap (80%+) is taken up by a single object - an array of ints that is referenced (apparently) directly from org.apache.tomcat.util.threads.TaskThread. I've seen more than half billion elements in this array, causing it to take up gigabytes of heap space. When viewing the heap summary through YourKit, this object is listed as unreachable.

The application itself doesn't use int arrays to store anything, at least explicitly.

Any ideas where these may be coming from? I seem to remember reading that Expression Language elements can cause problems in newer versions of Tomcat but I can find little reference to this on Google. This intrigues me because when the servers die due to thread deadlocks, there are almost always thread blocked in the middle of EL evaluation. Could the EL engine be sharing space somehow and getting tangled up?

Any ideas would be appreciated!

-Randy Yarger
MICROS-Retail
ryarger@micros-retail.com
10 years ago
The night before I was scheduled to take SCEA Part I (Tuesday) I stumbled across this forum. It turns out I missed my time and wasn't able to take it till this morning.

In the intervening day, I looked through most of posts here and followed many of the suggested links in the FAQ. I learned about Whizlabs and ePractize and took their free sample tests, as well as the other free tests in the FAQ.

My previous study aids were solely the Cade book and Head First Design Patterns.

I really think that this forum is the reason I passed this exam! Just going on Cade's book I was totally unprepared for Messaging and Legacy Connectivity!

Thanks to all!
Randy Yarger (SCEA Part I)
Correct, there is no quantitative time on the diagram (obviously, you'd have no idea exactly how long an interaction would take place while you're designing the architecture).

Just as your original question states the diagram is "organized by time". That is, you place the messages the order that they're called, from first to last.
For the assignment, the FAQ states that an experienced architect "may be able to complete it in under a month full time".

The few posts I've found where people have specified the gap between completing part I and submitting part II seems to fall inline with that, usually 2-3 months.

Now, I know that creating a detailed architecture takes time, but given the extensive amount of info already available for this particular assignment, it sort of surprises me that the average time isn't more like 2-4 weeks rather than the "expert time" being a month.

So, for those who've been there, what took most of the time for you in completing the assignment?

- Understanding the requirements
- Laying out the architecture itself
- Actually creating the diagrams
- ???

I just don't want an experience like in college where I'd complete a 2 hour test in 20 minutes and be thinking "Ok, either I did something really right, or *really* wrong."

Thanks all!
Sequence diagrams are all about time. The vertical axis of the diagram is time, starting with the top. So as you travel down the diagram you are moving forward in time and can tell what order the messages follow.
In both the Whizlabs and EPractize simulators there's a question that amounts to:
Person has class that accomplishes task A, but wants to modify it so that it works somewhat differently (in a different country, change in business rules, etc.), which pattern should they use to accomplish this?

When I first encountered the question in Whizlabs I picked Strategy, thinking they could make a concrete strategy for each case and swap in whichever was needed. The answer given was Template Method, with the rationale that since Template Method broke the task into smaller sub-tasks, it made it easy to change the part that needed changing without affecting the algorithm as a whole.

I can see that logic, but Strategy seemed more correct. Then I took EPractize and saw a very similar question and this time I stubbornly stuck with Strategy, and again the test's answer was Template Method, with a very similar rationale.

Can someone convince me that Template Method is *definitely* the best choice here before I go into Part I and shoot myself in the foot by sticking with Strategy?

Thanks!
-Randy Yarger