Caroline Lawrence Interview, plus links to author biography, book summaries, excerpts and reviews

Caroline Lawrence

Caroline Lawrence

An interview with Caroline Lawrence

Caroline Lawrence answers a multitude of questions asked of her by students during her hundreds of school visits. Includes everything you could possibly want to know about the Roman Mystery series, including the names and publication dates of books yet to be published!

My book is signed by you, and has something written in a foreign language. What does it mean?
I try to sign each of my books or short stories with a different Latin motto. Here's what they mean:

  • Cave canem in The Thieves of Ostia means 'Beware of the dog'
  • Fortes fortuna iuvat in The Secrets of Vesuvius means 'Fortune favours the brave'
  • Volare! in The Pirates of Pompeii means 'to fly!'
  • Lacrimae rerum in The Assassins of Rome means 'events have tears' or 'sad things happen'
  • Morbo medeor in The Dolphins of Laurentum means 'I am healed of my disease'
  • Pater noster in the short story Bread and Circuses means 'Our father'
  • Carpe diem in The Twelve Tasks of Flavia Gemina means 'Seize the day' or 'Go for it!'
  • Fiat lux in the short story The Case of the Missing Coin means 'Let there be light'
  • Ars longa... in The Enemies of Jupiter means 'the skill lasts a long time...'
  • Uri, vinciri, verberari... in the short story Jonathan vs Ira means 'to be burned, fettered, flogged...'
  • Habet! in The Gladiators from Capua means 'he's been hit!'
  • Hectora credas in The Colossus of Rhodes means 'you would think he was Hector'

Where were you born?
I was born in London, England; but I'm American and grew up in California (Bakersfield and Stanford.)

Which school did you go to?
I went to Gunn High in Palo Alto, California.

What was your best subject at school?
My best subject in school was art. I loved drawing and it was the first subject I ever got an 'A' in! (I did the drawings for all the bookplates on this site)

Did you study Latin at school?
No! Though I would have loved it. My father was a French teacher and I begged him to teach me French but he was too tired from teaching 13-16 year olds. (In America at my school you didn't do any languages when you were 9.) So it wasn't until I was 19 years old that I started to study first Greek and then Latin. I used to prefer Greek but now I like Latin better. Mainly because I think we are more 'Latin' than 'Greek' in today's world.

How old are you?
Ancient! (in Roman terms).

When is your birthday?
May 24th, 19 .... wait a minute! very clever!

What sort of family do you have?
A grown up son named Simon and my husband Richard.

Does your son like your books?
He would probably shrug and say, 'They're OK.'

Do you have any pets?
When I was a kid I had a dog called Duchess. Later we were adopted by a cat called Mojo. Now we don't have any pets but we have about ten different species of bird right outside our windows!

Where do you live?
A riverside flat in London, England.

Where do you write?
On a blueberry iMac in my study in my riverside flat facing a wall covered with pictures.

Do you have any hobbies?
Jogging by the river, watching films and surfing the net.

What's your favorite food?
I love salads, lemons and... chocolate.  And that's why I could never survive in Roman times: NO CHOCOLATE!

What's your favorite film?
Star Wars - a New Hope, and my favorite Roman film is A Funny Thing Happened on the way to the Forum.

What's your favorite TV program?
Buffy the Vampire Slayer.

I hear that you actually appeared in an episode of Buffy?
Yes! I am in the crowd scenes of several season 4 episodes of Buffy. The best place to see us is to watch 'Hush'. Right after the Gentlemen's heads explode there is a quick bird's-eye-view of the Sunnydale campus. Freeze the frame. Slightly to the left and below the centre of the screen is a man in a dark green shirt wearing a bright straw hat. That is my husband Richard. On his left is a woman with fluffy dark hair, wearing a pale pink shirt with tails. That's ME! We are supposed to be Sunnydale students! *hee*

Who has inspired you and who do you admire?
I adore the men and women whose music brings joy into my life; but I most admire Joss Whedon, the screenwriter of Buffy the Vampire Slayer and Firefly, and John Truby, another Hollywood script doctor. I think they are the most brilliant writers living today.

What kind of music do you like?
I love music which I call West Coast Jazz and my husband calls 'Lounge'. My favorite jazz guitarists are Larry Carlton, George Benson, Chris Standring, Jeff Golub, Lee Ritenour, Martin Taylor and Joyce Cooling. My favorite jazz pianists are Bill Evans and David Benoit. And I love jazz trumpet, in particular Rick Braun, Chris Botti, and of course Miles Davis!

What's your favorite animal?
A cheetah on land and a dolphin in water.

Are you afraid of anything?
Only cheese.

What's your favorite color?
Red

Where in the world have you dreamed of going but never have gone?
East Africa

Did you write small books in your spare time when you were young?
No.

Do you write a title and then plan a story from that or do you plan the story first and then make up the title?
Usually the story comes first but sometimes I have to twist the story to work in the title my publisher wants! (e.g. the pirate song in 'The Pirates of Pompeii')

Do you plan the story first and then write out a draft or do you write off the top of your head and then edit it on the computer?
I've learned ALWAYS to do a thorough plan and chapter outline before I start writing! The inspiration comes later!

Are they going to make your books into films?
I hope so! But Steven Spielberg hasn't been returning my calls...

Did you always want to be a writer?
No. When I was young I wanted to be a mini-skirted ensign on the starship Enterprise and to boldly go where no man has gone before!

I just wanted to ask erm, do they REALLY have star trek conventions?????
Aye, Captain! ;)

What inspired you to be a writer?
Three things:

  1. I love reading books because...
    • books teach you how to live.
    • books teach you how to love.
    • books encourage you and give you hope.
    • books lift you up when you are down.
    • books take you to places and times you could never otherwise visit.

       
  2. I always thought being a writer would be the best job because...
    • you are your own boss.
    • you get paid to make up stories.
    • you can travel, read a book, go to a film... and call it research!
    • you get to touch people's lives.
       
  3. I thought it would be great to be able to say 'I'm a writer.'  And it is! :)
     

When did you decide that you wanted to become a writer?
I've wanted to be a writer off and on throughout my life, but about fifteen years ago I really determined to do it. This meant reading lots of books on writing and getting up early to put in an hour of writing a day before I went to work as a teacher. To see my favorite books on writing, go here.

Did you have a job before you became a writer?
I was a Primary School Teacher. I taught Latin, French and art.

Was it hard to find a publisher?
Not really. My husband (who has worked on non-fiction books) already had an agent named Teresa. She did all the hard work of sending my book to suitable publishers. In the end Orion bought six books on the strength of the first book one. So no, apart from the ten years of getting up early to write every day it wasn't too hard. Visit my page called How to Get Published.

Did the first book you ever wrote get published?
No. It was a novel for young adults called The Scribe. It was about a boy in a monastery in 6th century Byzantium. I also have a non-fiction book and a screenplay gathering dust in a drawer somewhere! I read somewhere that it is usually your fourth book that gets published. That's because you can read as many books as you like, but you don't really learn how to write until you do it.

I want to be a writer, too. Do you have any tips you could give me?
I have a whole page of them! Go here.

Which is your favorite out of all your books that you have written so far?
The Pirates of Pompeii or Twelve Tasks of Flavia Gemina. I like romance!

Who is your favorite character in your books?
That's a hard question: I guess it would have to be Flavia Gemina, but I love them all, even the villains!

Do you base your characters on real people?
Yes, some more, some less. I also base characters on jazz musicians. For example, I imagine that Simeon in The Assassins of Jerusalem looks like 'Slim Man' a jazz bass player and singer from Baltimore.

Where do you get your ideas from?
From my whole life, everything, people I've know, movies I've seen, books I've read, dreams I've had. Also from myths and Greek vases and the places I visit. I get ideas listening to jazz and looking at art. Finally, one of my best sources is the wealth of literature by Latin authors who lived during Flavia's time: Pliny the Elder, Pliny the Younger, Statius, Martial, Juvenal, Valerius Flaccus and also the Latin and Greek poetry that an educated Roman boy (and sometimes girl) would have studied: Virgil, Ovid, Catullus, Homer, Apollonius, and Apollodorus. There are lots more!

How do you come up with so many ideas for names, places and especially Scuto, Flavia's dog?
That is a brilliant question! Scuto is named after my nephew Nicholas (now 11) because his nickname used to be 'Scooter'. But scuto also means shield in Latin so it's the perfect name for a watchdog, (even if he's not a brilliant watchdog). And Nipur is named after my other nephew Andrew (now 11) because his nickname used to be 'Nipper'! Lots of the other names have secret Latin meanings.

I recently heard you speak. Where do you get all those artifacts?
Every time I go to a museum, or to a different country to do "research", I try to find a replica Roman artefact. That's why I have so many! If you want to start a collection, one of the best places to start is the British Museum. That's where I got my replica coins, my charioteer clay oil-lamp and the little green *Egyptian* glass bottle for scented oil and gladiator scrapings!

How old are the characters in the Roman Mysteries?
Here are the ages of characters in the Roman Mysteries on 1 March AD 80 and also their dates of birth:
Rhoda 4 (born 76 AD)
Hyacinth 8 (born 71 AD)
Rizpah 8 (born 71 AD)
Lupus 9 (born 71 AD) 15 February
Flavia 10 (born 69 AD) 16 June
Jonathan 11 (born 68 AD) 15 September
Nubia 11 (born 68 AD) 18 August
Aulus Jr 12 (born 67 AD) 1 August
Miriam 14 (born 65 AD) 15 July
Julia (Titus' daughter) 14 (born 65 AD)
Pliny the Younger - 18 (born 61 AD)
Flaccus - 19 (born 61 AD) 2 January
Aristo - 21 (born 58 AD) 3 July
Caudex - 28 (born 52 AD)
Sisyphus - 27 (born 52 AD) 1 September
Domitian - 28 (born 51 AD) 24 October
Susannah - 30 (born 50 AD) 1 March
Marcus& Gaius - 31 (born 48 AD) 24 May
Felix - 34 (born 45 AD) 13 March
Statius - 34 (born 45 AD) 1 April
Cynthia - 35 (born 44 AD) 28 April
Alma - 36 (born 43 AD)
Titus - 40 (born 39 AD) 30 December
Polla Argentaria - 40 (born 39 AD)
Marcus Valerius Martialis - 41 (born 39 AD)
Josephus - 41 (born 38 AD)
Mordecai 42 (born 37 AD) 11 February
Senator Cornix - 45 (born 34 AD)
Lusca (the old woman of Ostia) - 107 (born 27 BC)

On the front of your books who does the drawings?
Three clever artists combine their talents to produce the Roman Mysteries covers:
Fred van Deelen did the mosaic portraits of the four friends based on my drawings.
Peter Sutton does the exciting images on different colors (based on my suggestions).
Richard Carr puts it all together with nice composition and lettering.

If you want to know lots more fun things about my book covers then have me come to your school to talk about 'How a Book Cover is Designed' Your teacher can book me here.

Which was your favorite book when you were a child?
I loved My Family and Other Animals by Gerald Durrell. Oh, and the Nancy Drew mysteries.

What are your favorite books now?
I still love My Family and Other Animals. Zorba the Greek is my comfort book. And at the moment I'm re-reading the fantastic sea novels of Patrick O'Brian.

Do you know any other children's writers?
In the past three years I have met Melvin Burgess, Francesca Simon, Morris Gleitzman, Anne Fine, Philip Pullman, Marcus Sedgwick, Terence Blacker, Richard Brassey, Quentin Blake, Celia Rees, Eoin Colfer, Chris D'Lacey, Tim Bowler, Avi, Michael Morpurgo and Garth Nix! I have also become friends with Cliff McNish, author of the brilliant Doomspell Trilogy, Kevin Crossley-Holland, author of the sublime Arthur Triology, and Robert Muchamore, author of the thrilling Cherub series, beginning with The Recruit.

How long does it take you to write a book?
6 months on average.

Have you got any special ambitions?
Yes I have always wanted an Oscar.

Please can you send me a list of the other books you have written?
There's good news and there's bad news.  The bad news is that the Roman Mysteries are the only books I've ever written (that have been published).  The good news is that I plan to write lots more in the series.

How many books are you planning to publish?
In this series (The Roman Mysteries) I would like to produce 18.
Here are the titles as I have planned them so far:
1 The Thieves of Ostia - the friends meet and solve their first mystery OUT NOW!
2 The Secrets of Vesuvius - a riddle and danger as Vesuvius erupts! OUT NOW!
3 The Pirates of Pompeii - who's taking kids from the refugee camp? OUT NOW!
4 The Assassins of Rome - Jonathan's search takes him to Rome OUT NOW!
5 The Dolphins of Laurentum - sunken treasure and Lupus's past! OUT NOW!
6 The Twelve Tasks of Flavia Gemina - romance and mystery in Ostia OUT NOW!
7 The Enemies of Jupiter - plague and fire in Rome, early AD 80... OUT NOW!
8 The Gladiators from Capua - opening of the Colosseum, AD 80 OUT NOW!
9 The Colossus of Rhodes - the four friends take a cruise in May... APR 2005
10 The Fugitive from Corinth - ...then they travel around Greece OCT 2005
11 The Sirens of Surrentum - the Villa Limona for romance & mystery APR 2006
12 The Charioteer of Delphi - a famous racehorse goes missing OCT 2006
13 The Girl from Jerusalem - back in Ostia, maybe to Judaea APR 2007
14 The Beggar of Volubilis - off to Morocco, Carthage and Spain OCT 2007
15 The Scribe from Alexandria - Egypt and Nubia APR 2008
16 The Prophet from Ephesus - the four go to Turkey & Asia Minor OCT 2008
17 The Legionary from Londinium - the friends go to Britannia - APR 2009
18 The Man from Pomegranate Street - dramatic end to the series! OCT 2009

'A dramatic end to the series!' Does that mean there will be no more Roman Mysteries? Or will there be another series?
I think after 18 mysteries Flavia and her friends will have earned a break! Don't you?
But I plan to write until I drop... so yes, I'm sure there will be more books after The Roman Mysteries. And I hope they will be even better!

I was wondering if Jonathan ever dies because somebody said that they almost cried when they where reading the part about Jonathan's grave?
Here is a secret: Jonathan CAN'T die because his portrait is on the covers of all the books! So don't worry... until the last book that is. Then ANYTHING could happen! ;-)

Are you thinking of writing other types of books?
After I finish the Roman Mysteries I might write 'The Qartmin Trilogy' about monks, stylites and demons in 6th century Byzantium! (see above 'Did the first book you wrote...')

Will the Roman Mysteries be published in other countries?
So far the rights have been sold to these countries: America, China, Finland, France, Germany, Greece, Holland, Italy, Japan, Korea, Poland, Portugal, Spain and Thailand.

What tips would you give someone who wants to be a writer?
The ONE thing you need to be a writer is... SELF-DISCIPLINE!
You have to start doing it, keep doing it, and never give up!

What inspired you to write books?
I always felt a twinge of jealousy when I met people who were writers. Or heard that someone was writing a book. One day I realized why: I wanted to be a writer, too! What inspired me was that I love books and stories more than almost anything in the world. What would we do without them?

What was your ambition as a child?
When I was 11 I wanted to be an officer on the Starship Enterprise and travel in outer space. (see above!) Later I wanted to be an astronomer (so that I could travel in space) but I wasn't good at maths. Later I wanted to study baboons (so I could travel to Africa and live in the bush) but I wasn't good at biology. Later I wanted to study ancient Rome and Greece and I WAS good at learning languages! So that's what I did until I decided to try to become a writer about 15 years ago.

Did anyone help you with the Roman mysteries?
Yes, I have lots of experts who help me on the historical details and read over my drafts. But 99% I do myself.

Why did you pick Rome for your books and not somewhere else?
I actually picked Ostia, the port of Rome, because it would have had lots of fascinating people visiting it and you could embark from there to anywhere in the Roman world. Also I visited Ostia for one afternoon when I was 16 and I never forgot it.

If you could be any of the characters in your books, who would it be?
It would be Flavia Gemina, of course!

Out of your books which one is your favorite?
Out of all the books I have written I think 'The Pirates of Pompeii' is my favorite because I had so much fun writing it.

Why did you choose Ostia as the setting for book one?
I visited Ostia Antica for one afternoon when I was 16 years old and I thought it was beautiful. I never forgot it, and when I decided to write mysteries set in Roman times I thought my characters should live in Ostia, because it is so beautiful. Also, they could meet interesting people from all over the Roman world and easily sail to other lands.

What parts of The Thieves of Ostia are historically accurate (true)?
Almost all the details of Roman life are true though I have not introduced any real historical figures. They come into all the books after The Thieves of Ostia.

How do you choose the title of a book?
My editor Judith and I compromised and made an agreement early on. In each title there would be one 'exciting' word (for her) and one 'classical' word (for me).

What made you choose certain words, like 'jackass'?
I think about every single word I use in my books, especially the names, which often mean things. The word 'jackass' or asine comes from a real graffiti found not in Pompeii but in Ostia. It was probably a Christian password at a time when it was dangerous to profess any faith which seemed to oppose Roman rule.

Why did you choose violent events for The Thieves of Ostia?
Things like that really did happen, and I want to show Roman life as it was. Another reason is that I wanted my books to appeal to boys, not just to girls. And boys like a spot of violence!

Which of your books did you enjoy writing the most? Which one was the hardest to write?
The hardest book to write was 'The Secrets of Vesuvius' because I had to get so many historical facts exactly right and also because the opponent was not human, but a volcano! That's the last time I make that mistake! You might be interested to know that I wrote 43 drafts of that book... Well, they say 'Writing is rewriting!'
The book I most enjoyed writing was 'The Pirates of Pompeii', mainly because I fell in love with the Villa Limona and its inhabitants. The only time I've ever had to be dragged away from my computer was while writing 'Pirates'; I was having so much fun!

Do any of your characters resemble you?
I am like Flavia because I like puzzles, codes, and mysteries; plus I am bossy.
I am like Jonathan because I am Jewish by background but call myself a Christian.
I am like Lupus because I lose my temper and get angry and storm off.
Sadly, I am not at all like Nubia who is gentle, intuitive and loves animals!

How as training as an archaeologist helped you as a writer?
An archaeologist looks at physical remains in the ground. I have only ever been on one dig in Shropshire (a Roman British site) and I thought it was pretty boring! I much prefer reading the myths, poems and letters of people who lived in ancient Greece and Rome. Their writings are the main source of my inspiration. That is why I studied Greek, Latin and Hebrew,

What do you do when you get writer's block?
I don't actually get writer's block where I run out of ideas, but sometimes my plots are so complicated that I have to fit all the elements together like a puzzle. When this happens, I go for a walk beside the Thames and listen to my walkman. Somehow the rhythmical forward movement always gives me lots of ideas and I usually have a breakthrough. I also get good ideas when I am half asleep.

On the audiobook of Enemies of Jupiter Josephus says to Flavia that the Hebrew letters of Titus's name add up to the Numbers of Conclusion. What are the numbers of conclusion?
Huh? Numbers of Conclusion? I can't find that anywhere in the book. Do you mean a number of significance? Maybe the actor who read the audio book got confused... Anyway, to explain: Hebrew letters equal numbers. So aleph is 1, beth is 2 and so forth. The Hebrew letters of the name *Nero Caesar* add up to 666. Nero persecuted Jews as well as Christians so the Jews thought of him as The Beast. That is why 666 equals The Beast. Of course, Nero has been dead for ten years by the time of Enemies of Jupiter, but any other person in power who persecutes the Jews could be considered another *Beast*.

I'm confused. Is Jonathan Jewish or Christian?
In the first century AD Judaism was a religion with several sects or subdivisions or 'philosophies'.
There were the Pharisees; the Sadducees, mainly the priestly class (like Susannah's parents in 'The Assassins of Rome'); the Essenes (also known as the 'Dead Sea Sect'); there were Zealots and their sub-sect, the Sicarii (like Simeon in 'The Assassins of Rome') who could also belong to one of the other sects; and finally there were several sects who believed the Messiah had come. One of these 'messianic' sects believed their Messiah (Greek word: 'Christ') had come in the person of Yeshua/Joshua=Iesous/Jesus (to give him his Hebrew/Greek/Latin name). At first they called themselves 'The Way'. Later they came to be known as Christians. Judaism as we know it today is probably a direct descendent of Pharisaic Judaism. The sects of Sadducees, Essenes and Zealots all died out.

The sect known as 'Christianity' obviously survived to become a major religion, but because it allowed non-Jews (or Gentiles) to join, it gradually became separated from Judaism. Today, Christians still read the same holy book: The Torah. The Torah refers to both the first five books of the Old Testament, and the whole Old Testament (Tanach) and all of Jewish instruction. Christians have just added the New Testament (literally the 'New Covenant') to it.

Meanwhile, Jews today are still waiting for the Messiah to come, although there are a growing number of 'Messianic Jews' who believe that Yeshua (Jesus) is the promised Messiah!

Reproduced with the permission of the author from her website at RomanMysteries.com.

Unless otherwise stated, this interview was conducted at the time the book was first published, and is reproduced with permission of the publisher. This interview may not be reproduced or reprinted without permission in writing from the copyright holder.

Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

Books by this Author

Books by Caroline Lawrence at BookBrowse
The Enemies of Jupiter jacket
Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

Read-Alikes

All the books below are recommended as read-alikes for Caroline Lawrence but some maybe more relevant to you than others depending on which books by the author you have read and enjoyed. So look for the suggested read-alikes by title linked on the right.
How we choose readalikes

  • Karen Hesse

    Karen Hesse

    Karen Hesse is the award-winning author of several outstanding books for young readers, including Letters from Rifka and Phoenix Rising. She lives in Williamsville, Vermont.

    Karen grew up in Baltimore, Maryland and began ... (more)

    If you enjoyed:
    The Enemies of Jupiter

    Try:
    Stowaway
    by Karen Hesse

  • Brian Jacques

    Brian Jacques

    "I sometimes think it ironic for an ex-seaman, longshoreman, truck driver, policeman, bus driver, etc., to find success writing children's novels," says Brian Jacques (pronounced "Jakes"). Yet it is all too true. With ... (more)

    If you enjoyed:
    The Enemies of Jupiter

    Try:
    Castaways of The Flying Dutchman
    by Brian Jacques

We recommend 4 similar authors

View all 4 Read-Alikes

Non-members can see 2 results. Become a member
Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

BookBrowse Book Club

Book Jacket
The Cover Girl
by Amy Rossi
Find them early enough, and they will always be her girls.

Members Recommend

  • Book Jacket
    The Sister's Curse
    by Nicola Solvinic
  • Book Jacket
    The Lost Story of Eva Fuentes
    by Chanel Cleeton
    A mysterious book links three women across generations in this novel by New York Times bestselling author Chanel Cleeton.
  • Book Jacket
    The Vanishing Place
    by Zoë Rankin
Who Said...

Believe those who are seeking the truth. Doubt those who find it.

Click Here to find out who said this, as well as discovering other famous literary quotes!

Book
Trivia
  • Book Trivia

    Can you name the title?

    Test your book knowledge with our daily trivia challenge!

Wordplay

Solve this clue:

W the C A the M W P

and be entered to win..

Your guide toexceptional          books

BookBrowse seeks out and recommends the best in contemporary fiction and nonfiction—books that not only engage and entertain but also deepen our understanding of ourselves and the world around us.

 


Debugging Information
ColdFusion Server Developer 2021,0,13,330286
Template /author_interviews/full/index.cfm
Time Stamp 01-Jun-26 06:44 AM
Locale en
User Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Remote IP 127.0.0.1
Host Name 127.0.0.1


Execution Time

Total Time Avg Time Count Template
1780296271650 ms 1.78029627165E+012 ms 1 /root/website/app_server.cfm
230 ms 230 ms 1 top level /root/website/author_interviews/full/index.cfm
74 ms 74 ms 1 /root/website/app_layout.cfm
65 ms 65 ms 1 /root/website/author_interviews/full/dsp_main.cfm
57 ms 57 ms 1 /root/website/app_globals.cfm
46 ms 46 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
38 ms 13 ms 3 /root/website/adsystem/adsystem_mod.cfm
19 ms 10 ms 2 /root/website/queries/qry_get_books_by_author_id.cfm
17 ms 17 ms 1 /root/website/adzones/AdZone2.cfm
17 ms 17 ms 1 /root/website/adzones/AdZone6.cfm
17 ms 6 ms 3 /root/website/site/blocks/membership_advantages.cfm
16 ms 5 ms 3 /root/website/queries/qry_get_member_account_types.cfm
15 ms 15 ms 1 /root/website/queries/qry_get_active_obc.cfm
15 ms 15 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
13 ms 13 ms 1 /root/website/queries/qry_get_books_by_author_id_lite.cfm
11 ms 11 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
10 ms 10 ms 1 /root/website/adzones/showcase_track.cfm
10 ms 10 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
9 ms 9 ms 1 /root/website/queries/qry_get_all_books_by_author_id.cfm
9 ms 9 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
8 ms 2 ms 4 /root/website/actions/act_spider_tracker.cfm
8 ms 8 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
6 ms 6 ms 1 /root/website/actions/adstatus.cfm
6 ms 6 ms 1 /root/website/queries/qry_get_current_competition.cfm
5 ms 5 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
3 ms 3 ms 1 /root/website/act_check_login.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_author_readalikes_by_id.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_member_info.cfm
2 ms 2 ms 1 /root/website/queries/qry_get_bb_briefs_by_author.cfm
1 ms 1 ms 1 /root/website/Application.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
1 ms 1 ms 1 /root/website/site/blocks/dsp_border_booktalk.cfm
1 ms 1 ms 1 /root/website/site/blocks/dsp_top_author_block.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/head.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/main_menu.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/main_search.cfm
0 ms 0 ms 1 /root/website/act_libraryIPLogin.cfm
0 ms 0 ms 1 /root/website/actions/udfs.cfm
0 ms 0 ms 1 /root/website/banners/ad_594.cfm
0 ms 0 ms 1 /root/website/formurl2attributes.cfm
0 ms 0 ms 1 /root/website/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_current_ezine.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_header_newsletter.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_wordplay.cfm
0 ms 0 ms 1 /root/website/site/blocks/email_modal.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/google_tags.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/header_announcement.cfm
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
232 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 06:44:31.031
SELECT	a.bot_number
        FROM	bots a
        WHERE	charindex(a.bot_name, ?) > 0
		OR a.bot_ip = ?
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) = Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Parameter #2(cf_sql_varchar) = 127.0.0.1

get_member_info (Datasource=bookbrowse_com_new, Time=2ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 06:44:31.031
select 	a.*, 
    		b.member_account_type_name, b.member_account_type_charge, b.member_account_type_charge_frequency,  b.member_account_type_months, 
            c.member_chargetype_name, c.member_chargetype_number, a.member_classification_number, a.member_book_format
	
    from members a, member_account_types b, member_chargetype c
	
    where a.member_account_type_number = b.member_account_type_number
	and a.payment_method_id = c.member_chargetype_number
	and a.member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

adactive (Datasource=bookbrowse_com_new, Time=3ms, Records=2) in /root/website/actions/adstatus.cfm @ 06:44:31.031
SELECT	viewby, section
    FROM	adsystem 
    WHERE	active  = 1 
    AND		start_date <= GETDATE()
    AND 	(viewby = ? OR viewby = 'all')
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = non

get_current_ezine (Datasource=bookbrowse_com_new, Time=0ms, Records=1, Cached Query) in /root/website/queries/qry_get_current_ezine.cfm @ 06:44:31.031
select		top 1 ezine_number, ezine_dt, ezine_image, ezine_brief_description, ezine_introduction
from		ezines
where		ezine_active_flag = 1
and 		ezine_type_number = 4
and			ezine_dt < getdate()
order by 	ezine_dt DESC
get_current_wordplay (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 06:44:31.031
SELECT		a.wordplay_number, a.wordplay_dt, a.wordplay_name, a.wordplay_intro_text, b.wordplay_puzzle_number, b.wordplay_puzzle_question
    FROM		wordplays a 
	INNER JOIN	wordplay_puzzle_mapping c on c.wordplay_number = a.wordplay_number
	INNER JOIN	wordplay_puzzles b on b.wordplay_puzzle_number = c.wordplay_puzzle_number
	WHERE		a.wordplay_number = (	select top 1 a.wordplay_number
                                from wordplays a, wordplay_puzzles b, wordplay_puzzle_mapping c
                                where a.wordplay_number = c.wordplay_number
                                and b.wordplay_puzzle_number = c.wordplay_puzzle_number
                                and a.wordplay_dt < getdate()
                                and a.wordplay_expiration_dt > dateadd(day, -1, getdate())
                                order by a.wordplay_dt asc
                                )
get_ComNo (Datasource=bookbrowse_com_new, Time=3ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 06:44:31.031
SELECT 	TOP 1 	x.competition_number, x.bb_briefs_flag
	from			competitions x
	
		WHERE	x.competition_dt <= getdate()
		AND		x.competition_expiration_dt > dateadd(d,-1,getdate())
get_current_competition (Datasource=bookbrowse_com_new, Time=2ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 06:44:31.031
SELECT 	x.competition_number, x.book_number, x.competition_teaser_title, x.competition_teaser_description, x.competition_intro_text, x.competition_expiration_dt, x.bb_briefs_flag, x.competition_full_info_flag, x.competition_type, x.competition_optin,x.competition_optin_text, 
				a.book_title as "title",
				(b.author_first_name + ' ' +  b.author_middle_initial + ' ' + b.author_last_name) as "author",
	            f.edition_publish_dt AS "hardcover_publish_dt", f.edition_jacket_image as "hardcover_jacket_image",
				g.edition_publish_dt AS "paperback_publish_dt", g.edition_jacket_image as "paperback_jacket_image"
	
		FROM 		competitions x
		INNER JOIN	books a on a.book_number = x.book_number
		INNER JOIN	book_author_mapping c on c.book_number = x.book_number
		INNER JOIN	authors b on c.author_number = b.author_number
		LEFT JOIN	editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
		LEFT JOIN	editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1

		WHERE		x.competition_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

get_previous_arcs_for_ad (Datasource=bookbrowse_com_new, Time=1ms, Records=0, Cached Query) in /root/website/queries/qry_get_previous_arcs_for_ad.cfm @ 06:44:31.031
SELECT 	a.arc_number,a.arc_client_url,a.arc_active_dt, a.arc_off_ad_dt,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publisher, 
		b.ezine_preview_publish_dt, b.ezine_preview_jacket_desc, b.ezine_preview_number_of_pages, b.ezine_preview_bb_comments, b.ezine_preview_isbn13,
		c.ezine_preview_category_name AS "ezine_preview_category",
		(select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) as "reviews",
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating,
 			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,1))) AS numeric(12,1)))from arc_allocator where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS "decrating"

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
INNER JOIN ezine_preview_categories c ON b.ezine_preview_category_number = c.ezine_preview_category_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND getdate() < arc_off_ad_dt

ORDER BY a.arc_on_ad_dt DESC
get_future_obc (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 06:44:31.031
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text, arc_on_ad_dt,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages, ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	
	WHERE 		arc_obc_flag = 1

	AND 		getdate() < arc_on_ad_dt
	
		ORDER BY  	NEWID()
get_active_obc (Datasource=bookbrowse_com_new, Time=6ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 06:44:31.031
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE 		a.arc_obc_flag = 1
	AND			a.arc_active_flag = 0
	AND 		arc_closed_flag = 1
	AND 		getdate() >= arc_on_ad_dt
	AND 		getdate() < arc_off_ad_dt
	ORDER BY  	NEWID()
get_recent_obc (Datasource=bookbrowse_com_new, Time=5ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 06:44:31.031
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE a.arc_number IN (select top 4 arc_number
							from		arcs
							WHERE 		arc_obc_flag = 1
							AND			arc_active_flag = 0
							AND 		arc_closed_flag = 1
							AND 		getdate() > arc_off_ad_dt
							ORDER BY	arc_on_ad_dt DESC)
	ORDER BY  	NEWID()
get_books_by_author_id (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 06:44:31.031
select	a.book_number, a.book_title, a.book_sub_title, book_short_summary,
				(CASE WHEN f.edition_publish_dt < g.edition_publish_dt OR g.edition_publish_dt IS NULL THEN f.edition_publish_dt
                      ELSE g.edition_publish_dt 
                      END) "publish_dt"
		
        from 	books a
		inner join book_author_mapping e ON e.book_number = a.book_number
        inner join authors d ON d.author_number = e.author_number
        left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0 
   		left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1 
		
       	where 	d.author_number = ?
        and 	a.book_number IN (	select	distinct b.book_number 
        							from	categories a, category_book_mapping b 
                                    where 	a.category_number = b.category_number 
                                    and 	a.category_active_flag = 1)

		order by publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1163

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 06:44:31.031
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1163

get_all_books_by_author_id (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_all_books_by_author_id.cfm @ 06:44:31.031
select	a.book_number, 
        		'' AS ezine_preview_number,
                a.book_title, 
                a.book_sub_title, 
				(CASE WHEN f.edition_publish_dt < g.edition_publish_dt OR g.edition_publish_dt IS NULL THEN f.edition_publish_dt
                      ELSE g.edition_publish_dt 
                      END) "publish_dt",
                '' as "jacket"
		
        from 	books a
		inner join book_author_mapping e ON e.book_number = a.book_number
        inner join authors d ON d.author_number = e.author_number
		left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
		left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
		
        where 	d.author_number = ?
        and 	a.book_number IN (	select	distinct b.book_number 
        							from	categories a, category_book_mapping b 
                                    where 	a.category_number = b.category_number 
                                    and 	a.category_active_flag = 1)        
        UNION

		select	'' AS book_number,
        		ezine_preview_number, 
				ezine_preview_title AS "book_title", 
				ezine_preview_subtitle AS "book_sub_title",
                ezine_preview_publish_dt AS "publish_dt",
                ezine_preview_jacket_image as "jacket"
		
        from 	ezine_previews
		
        where 	ezine_preview_bb_author_link = ?
        and		ezine_preview_bb_link < 1
        
        order by publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1163
Parameter #2(CF_SQL_INTEGER) = 1163

get_bb_briefs_by_author (Datasource=bookbrowse_com_new, Time=1ms, Records=0) in /root/website/queries/qry_get_bb_briefs_by_author.cfm @ 06:44:31.031
select	ezine_preview_number, 
				ezine_preview_title, 
				ezine_preview_subtitle,
                ezine_preview_publish_dt ,
                ezine_preview_jacket_image
		
        from 	ezine_previews
		
        where 	ezine_preview_bb_author_link = ?
        and		(ezine_preview_bb_link IS NULL
				 or ezine_preview_bb_link < 1)
        and		ezine_number > 0
        
		order by ezine_preview_publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1163

get_author_readalikes_by_id (Datasource=bookbrowse_com_new, Time=2ms, Records=4) in /root/website/queries/qry_get_author_readalikes_by_id.cfm @ 06:44:31.031
SELECT		a.author_number,
			CASE	WHEN datalength(a.author_middle_initial) > 0 
					THEN a.author_first_name + ' ' + a.author_middle_initial + ' ' + a.author_last_name
					ELSE a.author_first_name + ' ' + a.author_last_name
					END AS "author_full_name",
			b.book_number, 
			f.book_title as "book",

			CASE	WHEN datalength(e.author_middle_initial) > 0 
					THEN e.author_first_name + ' ' + e.author_middle_initial + ' ' + e.author_last_name
					ELSE e.author_first_name + ' ' + e.author_last_name
					END AS "liked_author_full_name",
			e.author_number as "liked_author_number", 
			g.book_title as "liked_book",
			c.liked_book_number as "liked_book_number" 

FROM		authors a
INNER JOIN	book_author_mapping b ON b.author_number = a.author_number
INNER JOIN	liked c ON c.book_number = b.book_number
INNER JOIN	book_author_mapping d ON d.book_number = c.liked_book_number
INNER JOIN	authors e ON e.author_number = d.author_number
INNER JOIN	books f on f.book_number = b.book_number
INNER JOIN	books g on g.book_number = c.liked_book_number

WHERE		a.author_number = ?

ORDER BY 	e.author_last_name, e.author_first_name
Query Parameter Value(s) -
Parameter #1(cf_sql_integer) = 1163

get_ads (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 06:44:31.031
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone2
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 06:44:31.031
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone2

get_member_account_types (Datasource=bookbrowse_com_new, Time=2ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 06:44:31.031
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_book_image (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/actions/udfs.cfm @ 06:44:31.031
select 	f.edition_publish_dt "hardcover_publish_dt", f.edition_jacket_image "hardcover_jacket_image", 
            g.edition_publish_dt "paperback_publish_dt", g.edition_jacket_image "paperback_jacket_image"
    
    from   	books a
	left join editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
	left join editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1
                    
    where 	a.book_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1605

get_member_account_types (Datasource=bookbrowse_com_new, Time=9ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 06:44:31.031
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_books_by_author_id (Datasource=bookbrowse_com_new, Time=5ms, Records=2) in /root/website/queries/qry_get_books_by_author_id.cfm @ 06:44:31.031
select	a.book_number, 
				a.book_title, 
				(CASE WHEN UPPER(LEFT(a.book_title, 2)) = 'A ' THEN SUBSTRING(a.book_title, 3, len(a.book_title) - 2) WHEN UPPER(LEFT(a.book_title, 3)) = 'AN ' THEN SUBSTRING(a.book_title, 4, len(a.book_title) - 3) WHEN UPPER(LEFT(a.book_title, 4)) = 'THE ' THEN SUBSTRING(a.book_title, 5, len(a.book_title) - 4) ELSE a.book_title END) "sort_book_title", 
				a.book_sub_title, 
				a.book_entry_dt, 
				a.book_short_summary, 
				a.book_jacket_info, 
                a.book_excerpt, 
                a.book_reading_guide,
				d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, 
				f.edition_publish_dt "hardcover_publish_dt", f.edition_number_of_pages "hardcover_number_of_pages", f.edition_isbn "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13",f.edition_jacket_image "hardcover_jacket_image",
				g.edition_publish_dt "paperback_publish_dt", g.edition_number_of_pages "paperback_number_of_pages", g.edition_isbn "paperback_isbn", g.edition_isbn13 "paperback_isbn13",g.edition_jacket_image "paperback_jacket_image",
				i.author_info_biography, i.author_info_interview, i.author_info_image, i.author_info_url,
                (select count(c.book_number) as "author_bookcount" from book_author_mapping c where c.author_number = ?) + (select count(e.ezine_preview_number) as "author_bookcount" from ezine_previews e where e.ezine_preview_bb_author_link = ?) as "authorbookcount"
                
		    from books a
            inner join book_author_mapping e ON a.book_number = e.book_number
            inner join authors d ON e.author_number = d.author_number
            inner join author_info i ON d.author_number = i.author_number
            left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
            left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
                        
            where e.author_number = ?
            and a.book_number IN (select distinct b.book_number from categories a, category_book_mapping b where a.category_number = b.category_number and a.category_active_flag = 1)
			
            order by sort_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 449
Parameter #2(CF_SQL_INTEGER) = 449
Parameter #3(CF_SQL_INTEGER) = 449

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 06:44:31.031
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
                CASE	WHEN datalength(d.author_middle_initial) > 0 
                        THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
                        ELSE d.author_first_name + ' ' + d.author_last_name
                        END AS "author_full_name",
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 449

get_books_by_author_id (Datasource=bookbrowse_com_new, Time=5ms, Records=2) in /root/website/queries/qry_get_books_by_author_id.cfm @ 06:44:31.031
select	a.book_number, 
				a.book_title, 
				(CASE WHEN UPPER(LEFT(a.book_title, 2)) = 'A ' THEN SUBSTRING(a.book_title, 3, len(a.book_title) - 2) WHEN UPPER(LEFT(a.book_title, 3)) = 'AN ' THEN SUBSTRING(a.book_title, 4, len(a.book_title) - 3) WHEN UPPER(LEFT(a.book_title, 4)) = 'THE ' THEN SUBSTRING(a.book_title, 5, len(a.book_title) - 4) ELSE a.book_title END) "sort_book_title", 
				a.book_sub_title, 
				a.book_entry_dt, 
				a.book_short_summary, 
				a.book_jacket_info, 
                a.book_excerpt, 
                a.book_reading_guide,
				d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, 
				f.edition_publish_dt "hardcover_publish_dt", f.edition_number_of_pages "hardcover_number_of_pages", f.edition_isbn "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13",f.edition_jacket_image "hardcover_jacket_image",
				g.edition_publish_dt "paperback_publish_dt", g.edition_number_of_pages "paperback_number_of_pages", g.edition_isbn "paperback_isbn", g.edition_isbn13 "paperback_isbn13",g.edition_jacket_image "paperback_jacket_image",
				i.author_info_biography, i.author_info_interview, i.author_info_image, i.author_info_url,
                (select count(c.book_number) as "author_bookcount" from book_author_mapping c where c.author_number = ?) + (select count(e.ezine_preview_number) as "author_bookcount" from ezine_previews e where e.ezine_preview_bb_author_link = ?) as "authorbookcount"
                
		    from books a
            inner join book_author_mapping e ON a.book_number = e.book_number
            inner join authors d ON e.author_number = d.author_number
            inner join author_info i ON d.author_number = i.author_number
            left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
            left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
                        
            where e.author_number = ?
            and a.book_number IN (select distinct b.book_number from categories a, category_book_mapping b where a.category_number = b.category_number and a.category_active_flag = 1)
			
            order by sort_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 562
Parameter #2(CF_SQL_INTEGER) = 562
Parameter #3(CF_SQL_INTEGER) = 562

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 06:44:31.031
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
                CASE	WHEN datalength(d.author_middle_initial) > 0 
                        THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
                        ELSE d.author_first_name + ' ' + d.author_last_name
                        END AS "author_full_name",
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 562

get_member_account_types (Datasource=bookbrowse_com_new, Time=4ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 06:44:31.031
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 06:44:31.031
SELECT 	top 10 a.arc_number,arc_promo_text,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1
and getdate() <= dateadd(day,1,a.arc_off_ad_dt)

ORDER BY NEWID()
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=4ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 06:44:31.031
SELECT 	top 3 a.arc_number,arc_promo_text,
			b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
					(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
					 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
					 ELSE 0
					 END)
				from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

	FROM arcs a
	INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

	WHERE arc_closed_flag = 1
	AND arc_obc_flag = 0
	AND getdate() >= arc_on_ad_dt
	AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1

	ORDER BY a.arc_off_ad_dt DESC
get_ads (Datasource=bookbrowse_com_new, Time=6ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 06:44:31.031
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=6ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 06:44:31.031
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6

get_type (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 06:44:31.031
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1112

get_quotes (Datasource=bookbrowse_com_new, Time=15ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 06:44:31.031
select top 1 ezine_number, ezine_quote, ezine_quote_title
	    from ezines
	    where len(ezine_quote_title) > 1
	    order by newid()
get_free_newsletters (Datasource=bookbrowse_com_new, Time=0ms, Records=4, Cached Query) in /root/website/queries/qry_get_free_newsletters.cfm @ 06:44:31.031
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=2ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 06:44:31.031
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
		 	AND a.adid NOT IN (?) 
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112
Parameter #3(CF_SQL_VARCHAR) = 0
Parameter #4(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 06:44:31.031
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        		AND a.adid NOT IN (?) 
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112

get_type (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 06:44:31.031
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 594


Scope Variables

CGI Variables:
AUTH_PASSWORD=
AUTH_TYPE=
AUTH_USER=
CERT_COOKIE=
CERT_FLAGS=
CERT_ISSUER=
CERT_KEYSIZE=
CERT_SECRETKEYSIZE=
CERT_SERIALNUMBER=
CERT_SERVER_ISSUER=
CERT_SERVER_SUBJECT=
CERT_SUBJECT=
CF_TEMPLATE_PATH=/root/website/author_interviews/full/index.cfm
CONTENT_LENGTH=
CONTENT_TYPE=
CONTEXT_PATH=
GATEWAY_INTERFACE=
HTTPS=
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
HTTP_ACCEPT=*/*
HTTP_ACCEPT_ENCODING=gzip, br, zstd, deflate
HTTP_ACCEPT_LANGUAGE=
HTTP_CONNECTION=upgrade
HTTP_COOKIE=CFTOKEN=3a912aa8f1b64c60-134444E5-9852-C383-BDD136651446B0EE; CFID=4090696; CFGLOBALS=urltoken%3DCFID%23%3D4090696%26CFTOKEN%23%3D3a912aa8f1b64c60%2D134444E5%2D9852%2DC383%2DBDD136651446B0EE%23lastvisit%3D%7Bts%20%272026%2D06%2D01%2006%3A44%3A31%27%7D%23hitcount%3D23%23timecreated%3D%7Bts%20%272026%2D06%2D01%2006%3A44%3A28%27%7D%23cftoken%3D3a912aa8f1b64c60%2D134444E5%2D9852%2DC383%2DBDD136651446B0EE%23cfid%3D4090696%23; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23
HTTP_HOST=dev.bookbrowse.com
HTTP_REFERER=
HTTP_URL=
HTTP_USER_AGENT=Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
LOCAL_ADDR=127.0.0.1
PATH_INFO=/author_number/1163/author/caroline-lawrence
PATH_TRANSLATED=/root/website/author_interviews/full/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/author_interviews/full/index.cfm
SERVER_NAME=dev.bookbrowse.com
SERVER_PORT=8500
SERVER_PORT_SECURE=0
SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE=
WEB_SERVER_API=
Client Variables:
cfid=4090696
cftoken=3a912aa8f1b64c60-134444E5-9852-C383-BDD136651446B0EE
hitcount=27
lastvisit={ts '2026-06-01 06:44:31'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 06:44:28'}
urltoken=CFID=4090696&CFTOKEN=3a912aa8f1b64c60-134444E5-9852-C383-BDD136651446B0EE
view=books
Cookie Variables:
CFCLIENT_BOOKBROWSE=order=p#member_number=0#member_active_flag=0#member_logged_in_flag=0#library_user_flag=0#view=books#
CFGLOBALS=urltoken=CFID#=4090696&CFTOKEN#=3a912aa8f1b64c60-134444E5-9852-C383-BDD136651446B0EE#lastvisit={ts '2026-06-01 06:44:31'}#hitcount=23#timecreated={ts '2026-06-01 06:44:28'}#cftoken=3a912aa8f1b64c60-134444E5-9852-C383-BDD136651446B0EE#cfid=4090696#
CFID=4090696
CFTOKEN=3a912aa8f1b64c60-134444E5-9852-C383-BDD136651446B0EE
Session Variables:
cfid=4090696
cftoken=3a912aa8f1b64c60-134444E5-9852-C383-BDD136651446B0EE
sessionid=BOOKBROWSE_4090696_3a912aa8f1b64c60-134444E5-9852-C383-BDD136651446B0EE
urltoken=CFID=4090696&CFTOKEN=3a912aa8f1b64c60-134444E5-9852-C383-BDD136651446B0EE
URL Parameters:
author=caroline-lawrence
author_number=1163
Debug Rendering Time: 9 ms