uPortal IRC Logs-2007-02-28

[08:23:37 CST(-0600)] * esm (n=esm@clue.mse.jhu.edu) has joined ##uportal
[08:45:53 CST(-0600)] <lescour> has anyone been using yourkit to analyse uP?
[08:46:09 CST(-0600)] <esm> i have, with up 2
[08:46:19 CST(-0600)] <esm> it has been a while though
[08:46:44 CST(-0600)] <lescour> jprobe has provided me a license
[08:46:56 CST(-0600)] <lescour> for evaluation
[08:47:19 CST(-0600)] <lescour> any problem areas you remember?
[08:48:16 CST(-0600)] <esm> no. I had to be careful configuring the heap for uportal, thats what I remember the most. Otherwise it worked really well. If you run under 1.5 you get some nice telemetry data.
[10:09:21 CST(-0600)] <esm> ugh. my imap server at work is super slow
[10:09:25 CST(-0600)] <EricDalquist> :/
[10:09:40 CST(-0600)] <EricDalquist> The oracle JDBC driver gives me heartburn
[10:09:50 CST(-0600)] <EricDalquist> the default connect and read timeouts for the sockets are -1
[10:10:03 CST(-0600)] * esm passes eric a tums
[10:10:10 CST(-0600)] <EricDalquist> meaning if the listner is down or the listner is up but the db is down the driver just hangs
[10:10:11 CST(-0600)] <EricDalquist> forever
[10:10:25 CST(-0600)] <EricDalquist> eating up more threads with each connect request
[10:10:46 CST(-0600)] <esm> doh. can commons-dbcp help with that?
[10:10:59 CST(-0600)] <esm> or are you using it outside of commons-dbcp?
[10:11:07 CST(-0600)] <EricDalquist> using dbcp
[10:11:10 CST(-0600)] <EricDalquist> but it can't really do much
[10:11:24 CST(-0600)] <EricDalquist> since socket operations are blocked in native code
[10:11:36 CST(-0600)] <EricDalquist> and the socket io is down deep in the driver
[10:11:47 CST(-0600)] <EricDalquist> the only thing it could try to do is kill the thread getting the connection
[10:11:55 CST(-0600)] <EricDalquist> but killing threads blocked in native code is iffy
[10:12:48 CST(-0600)] <esm> argh yeah you are giving me heartburn (smile)
[10:13:50 CST(-0600)] <EricDalquist> the most annoying bit is the DB we keep having troubles with is only required for a few portlets and they are all designed to deal nicely with not having a connection
[10:14:13 CST(-0600)] <EricDalquist> so instead of just those portlets not working (like they are designed to) the whole portal grinds to a halt as thread pools get exhausted
[10:30:35 CST(-0600)] <esm> wow.
[10:30:57 CST(-0600)] <esm> could you run the troublesome portlets in a separate JVM and some how proxy them into your production portal
[10:47:28 CST(-0600)] <lescour> we've had the oracle db go down a couple of times, and uP can't recover when it comes back up
[10:48:28 CST(-0600)] <lescour> which is irksome, because the systems guys are the only ones who can restart, and it can be difficult to get ahold of them
[10:50:35 CST(-0600)] <EricDalquist> lescour are you using dbcp?
[10:55:19 CST(-0600)] <lescour> it looks like we are using protomatter
[10:56:06 CST(-0600)] <EricDalquist> we've had a lot of problems with Oracle's JDBC driver too, if you're interested I can paste our DBCP config that seems to be working well even through outages
[10:56:48 CST(-0600)] <lescour> sure. i'd like to see it
[10:57:09 CST(-0600)] <EricDalquist> lets hope I don't get booted by flood protection (smile)
[10:57:13 CST(-0600)] <EricDalquist> initialSize="2"
[10:57:13 CST(-0600)] <EricDalquist> maxActive="50"
[10:57:13 CST(-0600)] <EricDalquist> maxIdle="12"
[10:57:13 CST(-0600)] <EricDalquist> minIdle="6"
[10:57:13 CST(-0600)] <EricDalquist> maxWait="1000"
[10:57:13 CST(-0600)] <EricDalquist> validationQuery="SELECT 1 FROM DUAL"
[10:57:15 CST(-0600)] <EricDalquist> testWhileIdle="true"
[10:57:17 CST(-0600)] <EricDalquist> timeBetweenEvictionRunsMillis="60000"
[10:57:19 CST(-0600)] <EricDalquist> numTestsPerEvictionRun="4"
[10:57:21 CST(-0600)] <EricDalquist> minEvictableIdleTimeMillis="3600000"
[10:57:23 CST(-0600)] <EricDalquist> connectionProperties="oracle.net.CONNECT_TIMEOUT=2;oracle.net.READ_TIMEOUT=1000;"
[10:57:25 CST(-0600)] <EricDalquist> removeAbandoned="true"
[10:57:27 CST(-0600)] <EricDalquist> removeAbandonedTimeout="300"
[10:58:43 CST(-0600)] <EricDalquist> thats all of it
[10:59:03 CST(-0600)] <EricDalquist> the connectionProperties is the magic bit we had to figure out to get reliability when DBs were down
[13:02:06 CST(-0600)] <EricDalquist> layering objects is a pain
[13:02:29 CST(-0600)] <EricDalquist> so we have portlet preferences from the deployments (portlet.xml) definitions (publishing) and entities (user)
[13:02:43 CST(-0600)] <EricDalquist> we have to show a nice unified view to the portlet ... which is easy
[13:04:14 CST(-0600)] <EricDalquist> but when someone makes changes (adding/updating preferences) doing a minimal changes update on the entity preferences is hard
[13:04:25 CST(-0600)] <EricDalquist> we only want to save changes
[13:05:00 CST(-0600)] <lescour> we are kicking around the idea of putting the actual uP installation in svn, to help with moving changes from test to prod. do you know if anyone else doing this?
[13:05:14 CST(-0600)] <EricDalquist> we do it all with CVS
[13:05:18 CST(-0600)] <EricDalquist> Rutgers does as well
[13:05:52 CST(-0600)] <EricDalquist> our change mngmnt guy is looking an switching our process to SVN
[13:05:57 CST(-0600)] <EricDalquist> not sure on his progress on that though
[13:06:04 CST(-0600)] <EricDalquist> we use a tag for each env
[13:06:10 CST(-0600)] <EricDalquist> and just move the tags
[13:07:01 CST(-0600)] <EricDalquist> so if I have code to move from test to qa I tag move the qa tag to the correct version of the file and run an update script that pulls the updates for that env down and does the stop/compile/deploy/start on the machine
[13:08:47 CST(-0600)] <lescour> what do you do about the config files that are machine specific?
[13:09:15 CST(-0600)] <EricDalquist> we branch them
[13:09:51 CST(-0600)] <EricDalquist> so the process is 'check out the QA tag' then 'check out the QA branch'
[13:10:05 CST(-0600)] <EricDalquist> this is all scripted so I'm only partially familiar with the exact impl
[13:10:21 CST(-0600)] <EricDalquist> if you're really interested I could put you in touch with the guy here who might be able to give you more details
[13:10:58 CST(-0600)] <lescour> there was a jasig presentation i should have attended
[13:11:25 CST(-0600)] <EricDalquist> (smile) yup, by Jim Thompson, the guy I'm talking about
[13:11:51 CST(-0600)] <lescour> his powerpoint is still available
[13:11:53 CST(-0600)] <lescour> excellent
[13:48:57 CST(-0600)] * esm (n=esm@clue.mse.jhu.edu) has joined ##uportal
[13:54:47 CST(-0600)] * esm (n=esm@clue.mse.jhu.edu) has joined ##uportal
[14:10:12 CST(-0600)] <esm> my head was spinning after Jim's talk
[14:32:05 CST(-0600)] <EricDalquist> we have a very ... complex system here
[14:32:12 CST(-0600)] <EricDalquist> it works and works well
[14:32:15 CST(-0600)] <EricDalquist> but it is not easy
[14:32:26 CST(-0600)] <EricDalquist> right now our end goal is SVN and maven2 for everything
[14:32:33 CST(-0600)] <EricDalquist> and then we have a POM for each environment
[14:32:56 CST(-0600)] <EricDalquist> so when someone wants to move some code into an env they cut a release and tell us to update the env POM with the new release numbers
[14:33:19 CST(-0600)] <EricDalquist> we're still not sure how to deal with config files in a component in that situation though
[14:34:08 CST(-0600)] <EricDalquist> hey esm, would you have some time tomorrow or friday to help me with some brainstorming on how uP3 implements portlet preferences?
[14:39:21 CST(-0600)] <esm> EricDalquist: you bet
[14:39:50 CST(-0600)] <esm> thursday morning i'm pretty busy but i should be around thursday afternoon.
[14:40:04 CST(-0600)] <esm> I have a friday morning meeting but should be around after 11 or so on friday
[14:40:17 CST(-0600)] <EricDalquist> cool, we'll perhaps thursday afternoon then
[14:40:30 CST(-0600)] <EricDalquist> I've just never been happy with how we deal with preferences
[14:41:26 CST(-0600)] <esm> cool i'll have to review the code first (smile)
[14:43:53 CST(-0600)] <EricDalquist> thank you
[14:52:32 CST(-0600)] <esm> no problemo
[14:52:39 CST(-0600)] <esm> it is sakai fun-time over here right now
[14:52:45 CST(-0600)] <esm> well mysql fun-time
[14:52:56 CST(-0600)] <EricDalquist> uhg
[14:53:01 CST(-0600)] <esm> and by "fun-time" i mean not so fun (smile)
[14:53:14 CST(-0600)] <EricDalquist> hrm ... so apparently the Pluto PortletPreferencesImpl calls store every time it is created
[14:53:47 CST(-0600)] <esm> migrating a mysql database from a case-insensitve file system (HFS+ on OS X) to Linux UFS == fun
[14:53:58 CST(-0600)] <esm> yeah i haven't really looked at the preferences impl
[14:54:00 CST(-0600)] <EricDalquist> so pluto calls PortletPreferencesService.getStoredPreferences then immediatly calls PortletPreferencesService.store
[14:54:19 CST(-0600)] <EricDalquist> well we can look at it tomorrow and see if there are tweaks needed
[14:54:26 CST(-0600)] <esm> yeah i agree
[15:51:13 CST(-0600)] * apetro_work_desk (n=apetro@uni1.unicon.net) has joined ##uportal
[15:51:53 CST(-0600)] <apetro_work_desk> I noticed the Confluence wiki bot log is updating more frequently – was that a deliberate change or is it running amok?