Dan Ray wrote:
> Can anybody tell me what that message means?
> Here's my situation: I'm trying to load a 20-k line text file into MySQL. My
> hosting company has disabled LOAD DATA INFILE for security reasons
> (grumble!), and they auto-kill CGI processes that run for more than 120
> seconds. Further, I don't have telnet access to this server. This hosting
> company doesn't have DBI installed, but they do have Mysql.pm, so I'm using
> that. Sounds like a lot of strikes against this hosting company, doesn't
> I thought my solution to all of these constraints was pretty clever. I wrote
> a perl CGI that inserts-or-updates ten rows, then puts out a web page with a
> meta refresh to itself, carrying query string info about how far along it's
> gotten. I put out some status report stuff for human consumption on that
> page as well. When it refreshes, the program ignores as many rows in the
> text file as it has already processed, processes another ten, and puts out
> another page. When it reaches eof on its input file, it deletes from the
> table where it doesn't find the unique session code I generated on first
> execution and inserted in a "CODE" column for each record. So far so good.
> When I run this thing, it seems to go VERY slowly--even more so than I would
> expect for the scheme I described. In about 15 minutes, it had only
> processed around 200 records. At that rate, the whole file would take about
> 25 hours...
> At around 200 records, it crapped out with the following message:
> Error from update.pl
> Can't execute statement:
> INSERT INTO Products
> ,FINE_LINE_CLASS_NO,CODE,ID,FINE_LINE_CLASS,) VALUES
> ('17.00','170.00','0.08','6309.00','1x2 Furring R/L','Common
> Lumber','Furring, Woodlath & Misc.
> Items','LF','1701.00','qjix7843','20292','Furring Strip')
> Resource temporarily unavailable
> Now, I've seen "Resource temporarily unavailable" out of DBI::mysql before,
> and it's always meant that I had a syntax error in my SQL. I don't see
> anything wrong with that statement, though, and it was constructed with the
> same logic that made the preceeding 200-odd statements. When I
> copy-and-paste that statement into the command-line client (running -h on
> another machine that I have telnet access to), it executes just fine.
> So, after all this wind-up, here's my question: is the resource REALLY
> temporarily unavailable? Should I have a subroutine that runs on failure of
> $dbh->Query() that sleeps for a second or so and retries? Or is there
> something more going on, and I'm just not getting very good info out of
> $dbh->errstr? Further, does anyone have any thoughts about why this process
> is so agonizingly slow?
> Dan Ray
> Account Manager
> Senior Web Developer
> Triangle Research, Inc.
I can see that you are a very persistent programmer,
which is great. However I think in this case your
persistence is doing you a bit of disservice :) How
about just changing the ISP ? If the company I worked
for made me do application development on a host with no
shell access and would refuse to do something about the
plight, I would just start looking for a different job
immediately. IT market is good for programmers nowadays
There are plenty of ISP's offering decent MySQL service,
and I am some of their admins are reading this message
and will be happy to pick up a customer.