filyxio® is a radiopacifier consisting in a dispersion of ytterbium trifluoride (YbF3) nanoparticles. To dental applications, Mathym offers the smallest YbF3 nanoparticles (15 to 45 nanometers) and the most stable and homogeneous dispersions available on the market. "Thanks to the small size of our proprietary nanoparticles and the absence of agglomerates, filyxio® claims to improve the transparency of dental filling materials and, thus, their depth-of-cure which is a critical aspect for our partners" commented Julien Alberici, CEO of Mathym.


Bitcoin ATM company web site and Ruby on Rails application.
Bitcoin calculator & market tracking iOS & Android UI development and UX design.
Lamassu Bitcoin ATM administration and management software.
Local resource for Bitcoin and tech related information and education.
International remittance app reliant on a Bitcoin ATM network for iOS & Android.
E-commerce store and website for custom frame studio and art gallery.
Web site and management software for consultation firm.
User management application for annual Miami Bitcoin Hackathon submissions.
Twitter bot tracking and tweeting out price fluctuations on Coinbase.
A startup focused on changing the way people buy cars online.
Brand Management, digital presence, and Google App services for a local body shop.


text:
package com.huawei.esdk.uc.professional.local.callback;

public interface UCProfessionalCallback {
}

redpajama_set_name: RedPajamaGithub


There's something incredibly extravagant about the beginning of a new year. Every 365 days you get to start over. I realize you could actually reset at any moment of the year but the notion of the planet doing it with you is remarkable. All those lofty resolutions being sent into the stratosphere. Some making it to heaven, others falling like boulders in a rock slide.
I sent a few up. Hopefully, they dodge the falling stones. Of course, I'm well aware my chances for success rest solely on my shoulders but I wouldn't refuse a little celestial assistance!
First things first… surviving this miserable winter.
Aglio e Olio garlic and oil is a staple in our house. I can have it on the table in the time it takes me to boil the pasta. Occasionally, I've ordered it when we've been out but rarely to much satisfaction. The simplicity of the dish leaves cooks thinking they can throw a little olive oil and garlic in a frying pan, toss in some pasta and they'll have a dish worthy of it's reputation.
Prepare pasta according to manufacturer's instruction being careful to time things so that the pasta is cooked when your sauce is ready.
When oil is warmed add garlic, chilli flakes and almond slivers.
Add chopped parsley, grated cheese and cooked pasta.
Toss well and serve with lots of freshly grated Parmesan cheese.
THE LOVE: The measurements for the salt, pepper and chilies are rough guesstamations. This is such a beautifully simple dish that it needs to be adjusted to suit your own taste. Remember to add in small increments. You can always add more but you can't take it out!
This entry was posted in pasta/risotto and tagged aglio e olio, classic pastas, garlic and oil, quick pasta by Michelle. Bookmark the permalink.


text:
Q: How to insert EEG triggers from one PsychoPy script into another? I am working on adding EEG triggers to this script in PsychoPy I wrote through builder mode in PsychoPy, as I am new to coding. The experiment is a series of audio recordings of sentence stems and visual word endings – the recordings and words are called up through a spreadsheet. We are interested in participants' responses upon viewing the word endings.
Below is my current script without the EEG triggers, and beneath it is a script from someone else with the same system they have used to insert EEG triggers. I am looking to record beginning at the end of the "Sentences" stimulus, including when during "target" and "response," and ending after they make their response.
Thank you very much for any help!
Here is the script I already have:
------Prepare to start Routine "trial1"-------

t = 0

trial1Clock.reset()  # clock

frameN = -1

continueRoutine = True

**# update component parameters for each repeat**

target.setColor([1.000,1.000,1.000], colorSpace='rgb')

target.setText(word)

response = event.BuilderKeyResponse()

Sentences.setSound(sounds, secs=6)

**# keep track of which components have finished**

trial1Components = [target, response, Sentences, text_2]

for thisComponent in trial1Components:

if hasattr(thisComponent, 'status'):

    thisComponent.status = NOT_STARTED

And here is the code to insert EEG triggers I am trying to integrate:
# Send event marker to NetStation
if mode=='eeg' and stage=='expt':
    code = 'item'
    ns.sync()
    ns.send_event(code, label='item', timestamp=egi.ms_localtime(), table = { 'item' : curr_item })

A: You say that you "wrote the code using Builder". Did you change the code after Builder? If not, then it's always best to work from Builder itself to allow you to change other aspects of the experiment while keeping your triggers. Assuming that you can work in Builder:
If you send triggers via the parallel port, there's a component for that under I/O --> Parallel port.
Otherwise, you can insert a Code Component to run your code at the desired times:

*

*In the "begin experiment" tab, add import xxxx as ns or however you created the ns object.

*In the "begin routine" tab, add your trigger code to mark stimulus onset.

*To mark stimulus offset, go to "each frame" tab and either (a) listen for the stimulus status like if stim.status == FINISHED: or (b) send the trigger at the predicted offset setting trigger_sent = False at "begin routine and then if t > 2 and not trigger_sent: (if your stimulus is 2 secs long)

redpajama_set_name: RedPajamaStackExchange


Keesal, Young & Logan, a full-service business law firm, opened its first office in Long Beach, California in 1970. Our goal is to help our business clients grow and prosper in the face of rapidly changing laws and challenges by competitors.
Keesal, Young & Logan assists companies both large and small, international, national and local. Our five offices, located in Long Beach, San Francisco, Seattle, Anchorage, and Hong Kong, are strategically situated to serve clients throughout the Western United States and around the Pacific Rim.
The firm's reputation has been forged through creative strategies, thorough preparation and planning, and strong advocacy in the courtroom.
Kiersted Systems is a leader in electronic discovery and legal technology consulting, offering customized solutions to help businesses of all sizes manage the complexities of today's legal environment. Our team of experienced, senior people is committed to providing quality service to meet every client's legal technology needs.
Headquartered in Houston, Texas, Kiersted also has offices in New York City, New York and Newport Beach, California. We have eDiscovery operations facilities in New York City and Houston, both featuring high levels of physical and network security, fully redundant power, and proven natural disaster resistance. Highly optimized Internet access and technology systems enable us to work efficiently and confidently on behalf of our clients.
At Kollabs, we always put the interests of our clients first. Then we evaluate our client's needs by taking the time to understand the context of their situation. We consider case type, case issues, client infrastructure, project scope and overall costs to customize a solution that addresses specific needs. Whether it's setting up a large scale first level review for an ITC case or processing a small custom data set for exploratory purposes, we are collaborative technology and legal specialists who understand the importance of putting our clients' perspective first so we can best meet their expectations.
The difference is our collaborative and professional mind-set always focusing on the interests of our clients first. The formula for successful projects are collaborative spirits willing to always deliver quality combined with specialized legal and technology experts. We believe these attributes make all the difference in converting new clients into lifetime partners.
KPMG's eDiscovery/Enterprise Discovery Management services help make the discovery process more cost-effective, while maintaining defensibility of the process and managing risks. KPMG's leading technology enables our process, allowing us to quickly implement changes that can benefit our user base broadly, or to create custom implementations for specific client needs.


text:
Art Franchise:
Abrakadoodle:
Abrakadoodle Franchise Business Overview
Abrakadoodle
Established in 2002, Abrakadoodle classes deliver comprehensive art experiences that immerse students, ages 20 months to 12 years old, in a broad landscape of activities including painting, collage, sculpture, mosaics, and more.
Corporate Office: 1800 Robert Fulton Drive, Suite 205, Reston, VA 20191
Industries: Art, Childrens, Education, Children's Art, Children's Education
About Abrakadoodle
Sterling, VA-based Abrakadoodle (www.abrakadoodle.com) was co-founded in 2002 by award-winning educators'/franchise developers Mary Rogers, MA. Ed (Ret), and Rosemarie Hartnett, CFE. Abrakadoodle is the most comprehensive creativity and art education company of its kind, offering extensive visual arts classes, camps and parties for children ages 20 months to 14 years old at locations across the U.S. and in several international locations. Abrakadoodle's programs inspire children's imaginations by immersing them in such art forms as painting, sculpting, drawing, mosaics, collage, stamping, anime, paper & fabric art and much more at schools and other community locations. Abrakadoodle's Art Splash program features creative art parties and events designed for adult "artventurers."
Sign up to be notified when Abrakadoodle franchise opportunities become available on Franchising.com.
While Abrakadoodle is not currently accepting new applicants on Franchising.com, these other similar opportunities are actively looking for new franchisees.
Minuteman Press International
Fully Promoted

redpajama_set_name: RedPajamaCommonCrawl


Donald L. Bodenner, M.D., Ph.D.
Dr. Donald Lee Bodenner is a Professor in the Department of Geriatrics at the University of Arkansas for Medical Sciences (UAMS). He is Director of the Thyroid Center and Chief of Endocrine Oncology.
Dr. Bodenner is a member of the Endocrine Society, American Thyroid Association, and American Association of Clinical Endocrinology. Throughout his medical career, Dr. Bodenner has received multiple awards for outstanding performance in the areas of clinical teaching and clinical research, including the American Federation of Clinical Research Early Career Development Award and the Red Sash Award here at UAMS. In addition, he has contributed to numerous professional publications and written articles for such prestigious publications as the American Journal of Medicine and Journal of the American Geriatric Society. Currently, Dr. Bodenner is conducting ongoing clinical research in the field of thyroidology in which he has a special interest. He also has a Geriatric Endocrinology clinic at the Thomas and Lyon Longevity Clinic.


text:
The NFL Salary Cap Is Set, How Much Can The Bills Spend In 2021?
Brett Alan Published: March 10, 2021
Many teams have been waiting to see what their salary cap would be before they made any really big moves this season. That wait is over. The salary cap has been announced.
If you aren't a sports person, a salary cap is essentially an agreement that puts a limit on the amount that any team can spend on all of the players' salaries that are on the roster. This will, in theory, make it an even playing field for every team. That way, a team with an incredibly wealthy owner cannot just go out and buy up all the best players and dominate year after year.
For the past seven years, the salary cap has risen every year by $10 million or more per team. But according to Kevin Patra from NFL.com, this year is the first year that it is actually going to go down. Because teams weren't able to sell tickets at their games due to COVID, they weren't able to bring in as much revenue as they normally do, and therefore will have to limit the cap.
The cap number is set at $182.5 million dollars.
That is a lot of money. But it is a big drop from the $198.2 million cap in 2020.
So what does that mean for the Bills?
It means that some players might be cut in order to make room. Already, center Mitch Morse has agreed to a $2 million reduction in his contract to stay with the Bills. We might see more of that too. Restructured contracts might become a thing.
And you're going to see it start happening soon as teams prepare for the new year. This next week could be a busy one leading up to free agency.
A Photo Review Of The Bills Season
Filed Under: buffalo bills, nfl
Categories: Brett Alan, Sports
Another Buffalo Bill Has Been Added To The 2023 Pro Bowl
Report: Buffalo Bills Make Their First Change To The Coaching Staff
Josh Allen Shuts Down The Damar Hamlin Conspiracy Theory
Jordan Poyer Fans Will Hate This Tweet From His Wife Rachel Bush
Former Buffalo Bills Quarterback Will Start In The XFL
The Most Devastating Bills Moment Ever Happened One Year Ago Today
Von Miller's Controversial Outlook Gives Buffalo Bills Fans Hope
Are Thanksgiving Games A Curse For The Bills?
Bizarre, Odd Thing Stefon Diggs is Wearing On His Head?


text:
Drop-in Drama: Benson & Estridge Estate
I felt a lot more confident when I came here, and I found that I'm a lot more stronger…
Drop in Drama is a series of regular drama workshops for families to participate in together. The workshops are delivered by Tale Be Told Theatre Company and take place on the Benson and Estridge estate in Hounslow Central, where there are higher than average levels of English spoken nas a second language.
The aim of the Drop In Drama project was to offer the chance for people to enjoy arts activities on a Hounslow Central estate where there are limited opportunities to take part in the arts.
The project was initiated by the Hounslow Central Local Advisory Group (LAG), a community group that come together to influence and shape the Creative People and Places Hounslow programme, identifying the arts needs in the area. The group decided to try drama as the primary artform because they understood that drama could help break down language barriers of the communities in the area and improve confidence amongst participants.
The project was aimed at families for two reasons: to encourage families to work together with the same shared goals; and to reach adults, particularly women, who, for cultural reasons, may not access activities without their children. Target participants were families from the Benson and Estridge estate, an estate in Hounslow Central which is known for higher than average BAME population and speakers of English as a second language, as well as lower disposable income.
The London Borough of Hounslow was a partner in the project and offered a bursary for some of the estate residents to participate in the activity for free. After the success of the first term they offered to cover 50% of the costs for whole project.
Tale Be Told Theatre Company, a Creative People and Places Hounslow Company Development Awardee – an emerging company that is being supported financially and through mentorship and business planning by CPP Hounslow – delivered the project.
The project offered week on week drama workshops where families participated in activities together including drama games/ exercises, role play, story-building and character development. The workshops also helped developed key life skills including team work, confidence building, imagination skills, presentation skills etc. Each week the group worked towards developing a final performance piece that was shared in the final week to family and friends.
One challenge the project faced in term one was the number of languages within the room – by term two this was addressed by delivering an initial session that included learning 'Hello' in various languages, by planning and delivering activities that were less verbal in their delivery and execution and by taking feedback from participants through a smiley face system rather than using words.
What was the impact of the project?
In term one, an average of twenty five people participated across the six weeks and in term two an average of twenty people including parents and children. In the second term, a contingent from the first term returned because of their enjoyment and satisfaction with the project in the first term.
The demographic of the group included a majority of female adults with a mix of male and female children, approximately 80% unemployed people as well as approximately 5% White British. Nine languages were spoken across the group.
CPP Hounslow's larger projects reach incredibly diverse audiences. With Drop In Drama there was a mission to target a particularly diverse group with a small-scale project and this has been successful.
The majority of participants rated every session as 'Very good' with all others rating them as 'Good'. When asked to describe the sessions in one word the group responded "The best ever", "This club makes my day!" and "Takes my breath away".
Some of the parents described what they were taking away from the session and it included "I liked that I joined in with my children, I'm really shy!" and "[I will take home] a smile for my husband".
When asked, 'Have you learnt anything new about yourself?' – adult participants responded "I have more imagination… I didn't know I could actually…sometimes I'm always shy, but when I first came here I felt like, a lot more confident…" and "I felt a lot more confident when I came here, and I found that I'm a lot more stronger…".
Audiences that came to see the final performance were really impressed using words like "Epic" and "Amazing".
An overarching CPP Hounslow priority that every one of our projects aims to address is for community members to take the lead in creating artistic opportunities for their area. When parents were asked if the would like to play a greater part in organising the Drop In Drama sessions four parents identified themselves as willing and interested to do that.
Another demonstration of a positive impact is that the London Borough of Hounslow were excited by the results of the project in term one and committed 50% of the costs for term two. In addition the borough has used the Drop in Drama model to develop their own sessions in other estates across Hounslow.


text:
Les Miles signs 5-year contract to coach Kansas
By Associated Press |
Posted: Sun 6:24 PM, Nov 18, 2018 |
Updated: Sun 10:41 PM, Nov 18, 2018
LAWRENCE, Kan. (AP) - Former LSU coach Les Miles has been hired to lead Kansas' downtrodden football program.
Kansas announced the hiring Sunday shortly after Miles arrived at the airport in nearby Topeka. Miles signed a five-year contract that will pay him $2,775,000 annually with retention bonuses of $775,000 due in November 2020 and $500,000 in November 2022.
The 65-year-old Miles spent 11 years at LSU, winning a national championship in 2007, before being fired four games into the 2016 season. His teams reached double-digit victories in seven seasons with the Tigers and reached another BCS title game in 2011. He also did a stint as head coach in the Big 12, rebuilding Oklahoma State and going 28-21 from 2001-04 in Stillwater.
Starkel to battle for starting job at Arkansas during fall camp
A surprising twist from Clemson at ACC media day
Tua feels title game defeat good learning experience for Tide
Bulldogs could look to graduate transfer as QB in 2019


text:
Samsung Galaxy A3 and A5 2016 launching next week
The 4.7-inch Galaxy A3 and 5.2-inch Galaxy A5 will sport new aluminum bodies and Gorilla Glass protection on both the front and back.
Ronald Tiefenthäler/ Allen Ngo, 01/15/2016
The South Korean manufacturer has announced the 2016 refresh of the Galaxy A3 and A5 smartphones for a launch next week in select European territories. The smaller Galaxy A3 will carry a 4.74-inch 720p Super AMOLED display and 1.5 GHz Exynos 7578 SoC while the larger Galaxy A5 will carry a 5.2-inch 1080p Super AMOLED display and 1.6 GHz Exynos 7580 SoC. Both models will have identical high-speed f/1.9 rear cameras. Additional specifications for each device are provided by the handy spec sheets below.
Customers can choose between Black, White, and Gold colors for the new Galaxy A smartphones with Rose Gold (or Pink Gold) coming early February. The refreshed A series brings aluminum designs and Gorilla Glass on both the front and back of the smartphones for a high-end and sleeker look. When compared to the more well-known flagship S series, the A series targets a more mainstream audience. Our reviews on the existing Galaxy A3 and A5 2015 editions show them to be respectable smartphones for the price. Perhaps coincidentally, the 2015 models launched very early in the year as well.
The refreshed Galaxy J series was also recently spotted in the wild, so Samsung looks to be well-prepared for a head start this early in the year. The headline-grabbing (and long-rumored) Galaxy S7 series will likely make an official appearance next month at the Mobile World Conference in Barcelona.
http://www.samsung.com/de/landingpage/galaxy-a-serie-2016/
Smartphones, Phablets, ≤5-inch, Camera SmartphonesThe Best Smartphones for Less Than 160 Euros
Samsung Galaxy A3, A5 and A7 (2017) spotted online News @ 08/29/2016
Marshmallow allegedly coming to Galaxy A3 (2016) News @ 06/20/2016
Samsung Galaxy C7 specs show up online News @ 04/19/2016
Samsung temporarily cuts Galaxy Tab S2 prices by 100 Euros News @ 01/24/2016
Samsung Galaxy S7 and S7 Edge LED cases spotted at FCC News @ 01/19/2016
Samsung Galaxy J1 2016 is now official News @ 01/14/2016
Samsung begins mass production of 2nd generation 14 nm chips News @ 01/14/2016
Samsung Galaxy S6 and Galaxy S6 Edge get a beta Marshmallow update News @ 01/13/2016
Samsung Galaxy J5 2016 spotted online News @ 01/13/2016
Samsung releases infographic for upcoming Exynos 8 Octa 8890 SoC News @ 01/12/2016
CES 2016 | Samsung unveils Chromebook 3 laptop News @ 01/07/2016
"); var paraArray = {"topicID":"55562","id":158212,"ajax":1,"language":2}; jQuery.ajax({ url: "https://www.notebookchat.com/forum_comments.php", type: "GET", data: paraArray }) .done(function(data) { jQuery("#nbc_forum_comments").html(data); }) .fail(function(data) { jQuery("#nbc_forum_comments").html("loading of comments failed :("); }); } Comment on this article
Microsoft could unveil Lumia 750 an...
Intel reports drop in net income fo...
> Notebook / Laptop Reviews and News > News > News Archive > Newsarchive 2016 01 > Samsung Galaxy A3 and A5 2016 launching next week
Ronald Tiefenthäler/ Allen Ngo, 2016-01-15 (Update: 2016-01-15)
Allen Ngo - US Editor in Chief
After graduating with a B.S. in environmental hydrodynamics from the University of California, I studied reactor physics to become licensed by the U.S. NRC to operate nuclear reactors. There's a striking level of appreciation you gain for everyday consumer electronics after working with modern nuclear reactivity systems astonishingly powered by computers from the 80s. When I'm not managing day-to-day activities and US review articles on Notebookcheck, you can catch me following the eSports scene and the latest gaming news.


text:
Eric Guirado
Nicolas Cazalé; Clotilde Hesme; Daniel Duval; Jeanne Goupil; Liliane Rovère
Antoine Sforza, a thirty-year-old young man, left his village ten years before in order to start a new life in the big city, but now that his father, a traveling grocer, is in hospital after a stroke, he more or less reluctantly accepts to come back to replace him in his daily rounds.
The Best Man's Wedding (2000)
Roro and Måns who are best friends, work at the park management and get to do all the shit jobs - clean up duck ponds and pick up dog poop. Roro's Swedish girlfriend Lisa wants to be introduced to his family but he refuses for a long time because of his Lebanese family traditions. When Roro finally decides to introduce Lisa to his family, he walks into the apartment full of relatives who are...
Thank You (2011)
The film is about three husbands having affairs outside their marriage. One of their wives hires a detective named Kishen and finds out that their husbands are cheating. Their wives find out when Kishen scares them by blind folding them and when they tell their girlfriends list, Sanjana gets hurt and leaves and tries to commit suicide but Kishen helps her.
In Los Angeles at the turn of the 1970s, drug-fueled detective Larry "Doc" Sportello investigates the disappearance of an ex-girlfriend.
Elizabethtown (2005)
Drew Baylor is fired after causing his shoe company to lose hundreds of millions of dollars. To make matters worse, he's also dumped by his girlfriend. On the verge of ending it all, Drew gets a new lease on life when he returns to his family's small Kentucky hometown after his father dies. Along the way, he meets a flight attendant with whom he falls in love.
I'm a Cyborg, But That's OK (2006)
Young-Goon works at manufacturing plant assembling radio's. She also believes she is a cyborg. One day, while working at the factory, she decides to re-charge herself by slashing her wrist and implanting electrical wires into her arm. Her action gets Young-Goon a mental hospital full of bizarre characters. At New World, Young-Goon spends her time listening to the radio, talking with vending machines, and licking the terminals of 9 volt batteries. She soon encounters a guy named Il-Sun. Il-Sun is a thief of souls in the mental hospital. Young-Goon and Il-Sun soon form a strong bond as their odd personalities complements each other perfectly. Unfortunately, Young-Goon becomes gravely ill from malnutrition. Young-Goon doesn't believe cyborgs should eat human food. She soon loses most of her energy and becomes bedridden. Doctors say that Young-Goon has only a few more days to live if she continues her ways. Il-Sun must now find a way to connect to her soul and save her from imminent death.
Nothing in Common (1986)
On his way up the corporate ladder, David Basner confronts his greatest challenge: his father.
Lonesome Jim (2005)
Failing to make it on his own, 27-year-old Jim moves back in with his parents and deals with crippling family obligations.
Parenthood (1989)
The story of the Buckman family and friends, attempting to bring up their children. They suffer/enjoy all the events that occur: estranged relatives, the "black sheep" of the family, the eccentrics, the skeletons in the closet, and the rebellious teenagers.
Welcome to the Dollhouse (1995)
An unattractive 7th grader struggles to cope with suburban life as the middle child with un-attentive parents and bullies at school.
Death at a Funeral (2007)
Chaos ensues when a man tries to expose a dark secret regarding a recently deceased patriarch of a dysfunctional British family.
Mrs. Doubtfire (1993)
Loving but irresponsible dad Daniel Hillard, estranged from his exasperated spouse, is crushed by a court order allowing only weekly visits with his kids. When Daniel learns his ex needs a housekeeper, he gets the job -- disguised as an English nanny. Soon he becomes not only his children's best pal but the kind of parent he should have been from the start.
Spanglish (2004)
Mexican immigrant and single mother Flor Moreno finds housekeeping work with Deborah and John Clasky, a well-off couple with two children of their own. When Flor admits she can't handle the schedule because of her daughter, Cristina, Deborah decides they should move into the Clasky home. Cultures clash and tensions run high as Flor and the Claskys struggle to share space while raising their children on their own, and very different, terms.
Stolen Kisses (1968)
Baisers voles is the second of two films from the 'Antonie-Doinel-Zyklus' by French director Truffaut. The film depicts the life of a young twenty year old man who's life revolves around casual jobs and women, especially young violinist Christine Darbon (Claude Jade's screen-debut).
All About Anna (2005)
Anna is a young costume designer, focused on her job and wary of getting caught in romantic relationships. She has just found a new apartment, and is tempted to let her latest boyfriend, Frank, move in with her. Instead, she finds a tenant: The flamboyant, fun-loving Camilla, who shares Anna's views on love and commitment. For both of them, it's all about fun.
Festival in Cannes (2001)
Cannes, 1999. Alice, an actress, wants to direct an indie picture. Kaz, a talkative (and maybe bogus) deal maker, promises $3 million if she'll use Millie, an aging French star. But, Rick, a big producer, needs Millie for a small part in a fall movie or he loses his star, Tom Hanks. Is Kaz for real? Can Rick sweet-talk Alice and sabotage Kaz to keep Millie from taking that deal? Millie consults with Victor, her ex, about which picture to make, Rick needs money, an ingenue named Blue is discovered, Kaz hits on Victor's new love, and Rick's factotum connects with Blue. Knives go in various backs. Wheels spin. Which deals - and pairings - will be consummated?
Quackser Fortune Has a Cousin in the Bronx (1970)
In Dublin, a working class family has been unsuccessful in convincing their son to get a real job: the son prefers his job of scooping up horse's dung and selling it for flower gardens. An American exchange student almost runs him over and gets to know him. The dung man has ignored warnings from his family and suddenly the horses have been banned from Dublin. His new love is leaving for America and he must find a way to cope with the new reality.
Various Positions (2002)
Josh is on track at law school and a place at his father's firm. As his family prepares for their traditional Passover celebrations, Josh hits a brick wall in the form of the alluring and troubled -and not quite Jewish enough- Cheryth. As things heat up at the dorm and at home, Josh is suddenly questioning his faith, his father and his future. Passion and new love collide with family values and the demands of tradition.
Cyrano de Bergerac (1990)
Embarrassed by his large nose, a romantic poet/soldier romances his cousin by proxy.
The Next Best Thing (2000)
A comedy-drama about best friends - one a straight woman, Abbie, the other a gay man, Robert - who decide to have a child together. Five years later, Abbie falls in love with a straight man and wants to move away with her and Robert's little boy Sam, and a nasty custody battle ensues.
The Deal (2003)
It is approaching an election in the UK when the leader of the Labour party, John Smith, suffers another in a line of heart attacks and dies. With the leadership campaign about to start the clear choice appears to be Gordon Brown, a stanch Scotsman. However Tony Blair is also beginning to appear more likely as he will appeal to Southern voters who would be turned off by Brown. Blair rings Brown to arrange a meeting to discuss which will go for the job. The film flashbacks to the start of their relationship, sharing an office in Westminster on their first seats.
Two married couples find only trouble and heartache as their complicated lives unfold. After 40 years of marriage, Alfie leaves his wife to pursue what he thinks is happiness with a call girl. His wife, Helena, reeling from abandonment, decides to follow the advice of a psychic. Sally, the daughter of Alfie and Helena, is unhappy in her marriage and develops a crush on her boss, while her husband, Roy, falls for a woman engaged to be married.
Joe Dirt (2001)
Joe Dirt is a janitor with a mullet hairdo, acid-washed jeans and a dream to find the parents that he lost at the Grand Canyon when he was a belligerent, trailer park-raised eight-year-old. Now, blasting Van Halen in his jacked-up economy car, the irrepressibly optimistic Joe hits the road alone in search of his folks.
Sophie's Revenge (2009)
Dumped by her fiance just two months before their wedding, comic strip writer Sophie hatches an elaborate plan to get her Jeff back and punish the movie star, Joanna, who seduced him away. She finds herself a partner, Gordon, an ex-lover of Joanna's. The two start on a comic adventure full of laughs and tears, aided by Sophie's two best friends, Lucy and Lily. At the eve of her success, Sophie suddenly faced of having to chose between a repentant Jeff and Gordon who has fallen for her.
Memories of Me (1988)
After a heart attack, Abbie Polin (Crystal), a New York doctor, goes to Los Angeles to see his father, Abe (King), who works in Hollywood as the "king of the extras." Their relationship has been strained for several years. This was the first movie directed by Henry Winkler, and much of it was filmed inside the MGM Studios in Culver City, California, only a few miles from Hollywood. Lisa, the romantic interest in Abbie's life, also comes for a visit and bonds with Abe, who gets along famously with everyone but his son. Abe begins having memory loss and eventually is diagnosed with a brain aneurysm. He and his son grow closer in time and, before it's too late, Abbie tries to get Abe a speaking role in a film.
When porn director Pablo reluctantly breaks up with his boyfriend, Juan, he encourages him to stay in touch. Juan moves away to live in a lighthouse and eventually writes his ex, but in the interim Pablo has taken up a psychotic new lover, Antonio (Antonio Banderas). Antonio intercepts their correspondence and flies into a towering rage, terrifying Pablo but inspiring him creatively as he works on a play about his transsexual sister.
Murder at the Gallop (1963)
Miss Marple and Mr Stringer are witness to the death of the very old and rich Mr. Enderby by heart attack. Yet they have their doubts about what happened. The police don't believe them thus leading Miss Marple to yet again investigate by herself. A cult film starring Margaret Rutherford.
The Only Mother (2003)
The story evolves around the ups and downs of being a single mother, Ina the main protaganist. Her three husbands leave her with 12 children and a financial problems that she needs to shoulder. Simple plot with a hilarious cast. Packed with laughs and tear-jerker scenes with movie/commercial spoofs, surely Ang Tanging Ina will make your heart delight.
Camp Nowhere (1994)
Morris "Mud" Himmel has a problem. His parents desperately want to send him away to summer camp. He hates going to summer camp, and would do anything to get out of it. Talking to his friends, he realizes that they are all facing the same sentence: a boring summer camp. Together with his friends, he hatches a plan to trick all the parents into sending them to a camp of their own design.
The Good Heart (2009)
Brian Cox stars as Jacques, the curmudgeonly owner of a gritty New York dive bar that serves as home to a motley assortment of professional drinkers. Jacques is determinedly drinking and smoking himself to death when he meets Lucas (Dano), a homeless young man who has already given up on life. Determined to keep his legacy alive, Jacques deems Lucas is a fitting heir and takes him under his wing, schooling him in the male-centric laws of his alcoholic clubhouse: no new customers, no fraternizing with customers and, absolutely no women. Lucas is a quick study, but their friendship is put to the test when the distraught and beautiful April (Isild Le Besco) shows up at the bar seeking shelter, and Lucas insists they help her out.
Houseboat (1958)
An Italian socialite on the run signs on as housekeeper for a widower with three children.
The Joke (1969)
In the 1950s, Ludvik Jahn was expelled from the Communist Party and the University by his fellow students, because of a politically incorrect note he sent to his girlfriend. Fifteen years later, he tries to get his revenge by seducing Helena, the wife of one of his accusers.
The Man of My Life (2006)
A man vacationing in the country with his wife and children finds his sexuality unexpectedly challenged in director Zabou Breitman's intimate drama. Frédéric is a family man who needs a vacation. Upon arriving at his cottage in the country, Frédéric makes the acquaintance of Hugo -- the gay neighbor who resides in the adjacent cottage. A free spirit who is open about his sexuality and frequently goes skinny-dipping in the moonlight, Hugo seems to be everything that Frédéric isn't. Soon, the tension between Hugo and Frédéric is palpable. Yet, while they may be at odds over their opposite lifestyles, the two men are also obviously attracted to one another and soon begin to flirt heavily. But Hugo's taunting of hopeless romantic Frédéric begins bordering on cruel when it becomes obvious that Frédéric is jealous of his new lover.
Over My Dead Body (2012)
Science researcher Hyun-Chul (Lee Beom-Soo) demonstrates with co-workers against the company president, who stole an important semiconductor chip and is attempting to flee to the United States. Meanwhile, the company president makes his escape from the protesters in an ambulance. During his escape, the executive cuts a wound in his arm and implants the chip there. While, Hyun-Chul and co-worker Han Jin-Soo (Jeong In-Gi) head for home, Han Jin-Soo is hit by a speeding car. Hyun-Chul thinks it isn't an accident. He contacts Han Jin-Soo's daughter Dong-Hwa (Kim Ok-Vin) and they meet at the police station. After visting her father at the hospital, Dong-Hwa becomes worried about how to pay for her father's hospital bills. On a TV at the hospital, they learn that the company president died from a heart attack. Hyun-Chul and Dong-Hwa then come up with the idea to steal the body of the company president for ransom.
Charlie returns to the East End after two years at sea to find his house demolished and wife Maggie gone. Everyone else knows she is now shacked up with married bus driver Bert and a toddler, and they all watch with more than a little interest at the trail of mayhem Charlie leaves as he goes about sorting things out.
Happiness for Sale (2013)
Mi-na takes over a small stationery store from her father when he suddenly falls down. She wants to sell the store because it seems only troublesome to her. But it is not as easy as she thought. The store's regular costomers force her not to sell it. The objections of the little children is hard to resist.
Uncle Buck (1989)
As an idle, good-natured bachelor, Uncle Buck is the last person you would think of to watch the kids. However, during a family crisis, he is suddenly left in charge of his nephew and nieces. Unaccustomed to suburban life, fun-loving Uncle Buck soon charms his younger relatives Miles and Maizy with his hefty cooking and his new way of doing the laundry. His carefree style does not impress everyone though - especially his rebellious teenage niece, Tia, and his impatient girlfriend, Chanice. With a little bit of luck and a lot of love, Uncle Buck manages to surprise everyone in this heartwarming family comedy.
Deewane Huye Paagal (2005)
This is the story of Karan and Tanya. Karan is in love with Tanya but is too shy to tell her. One day Tanya witnesses the murder of a scientist by his evil twin brother, the underworld don Mehboob, and needs to flee the country. When Karan's friend coaxes him to track Tanya after she migrates to Dubai, he enlists the aid of a deceptive investigator, Rocky to track her down. Rocky ends up falling in love with her at first sight and tries to stop Karan from wooing her. Meanwhile, Tanya's physically disabled friend, Sanju also has a soft spot for her and tries thwarting Rocky's attempts at getting close to Tanya. The plot thickens when Don Mehboob and his gang track Tanya down in Dubai.
A Matter of Heart (2009)
Garage owner Angelo and big-time film producer Alberto find themselves occupying neighbouring beds in a Rome hospital after suffering heart attacks. Alberto is a gregarious joker - and chain smoker - who has a strong effect on the impressionable Angelo. However, as one of the men's condition deteriorates, the other becomes more deeply involved in his personal life.
Hello My Love (2009)
Ho-jeong finds out her boyfriend has fallen in love with a man while studying abroad. She demands one month of dating to win him back.
Housefull 2 (2012)
Housefull 2 is an upcoming Bollywood action comedy film directed by Sajid Khan and produced by Sajid Nadiadwala. It is the sequel to the 2010 Bollywood commercially successful movie Housefull
Your Only Mother: This Is The Last! (2010)
A few months after Ina left the position as the President of the Philippines, she is back in the media limelight as she releases a book of her life in her journey as a mother to her children and as a mother to the people of the Philippines. Ina now lives a simple life with her beloved children, together with her long-time best friend, Rowena.
We Are Pregnant (2016)
It seems simple: an egg + sperm = one embryo. But if your sperm is "few, vague and abnormal" and your woman is premenopausal at age 37, things start to get complicated.
The Bothersome Man (2006)
Forty-year-old Andreas arrives in a strange city with no memory of how he got there. He is presented with a job, an apartment - even a wife. But before long, Andreas notices that something is wrong. Andreas makes an attempt to escape the city, but he discovers there's no way out. Andreas meets Hugo, who has found a crack in a wall in his cellar. Beautiful music streams out from the crack. Maybe it leads to "the other side"? A new plan for escape is hatched.
Friday (1995)
Craig and Smokey are two guys in Los Angeles hanging out on their porch on a Friday afternoon, smoking and drinking, looking for something to do. Encounters with neighbors and other friends over the course of the day and night, and their ensuing antics, make up the rest of the movie.
The Seagull's Laughter (2001)
Post-war provincial Iceland: around 1950, Freyja, who'd been a plump teen, returns from America, a widow with a 20-inch waist, seven suitcases of dresses, and a list of who ever wronged or slighted her. She moves in with an aunt and socialist uncle: finding a new husband is high on her agenda, and she's mistrusted by Agga, a pre-teen who's our eyes and ears. The social order and Freyja are more complicated than they seem at first, and so may be her prospects. Class divisions, families ties, pride, the onset of puberty, and the power of Eros sliver the ice.
Kuruvi (2008)
Vijay is a nice guy working for a courier firm. Little does he know that the couriers are being used as a secure transit route for several illegal substances like narcotics by a smuggling gang. Neither Vijay nor his courier firm is aware of this transaction and fate lands him in jail, transporting one such parcel with smuggled goods. How can he clear himself?
Little Voice (1998)
After the death of her father, Little Voice or LV becomes a virtual recluse, never going out and hardly ever saying a word. She just sits in her bedroom listening to her father's collection of old records of Shirley Bassey, Marilyn Monroe and various other famous female singers. But at night time, LV sings, imitating these great singers with surprising accuracy. One night she is overheard by one of her mother's boyfriends, who happens to be a talent agent. He manages to convince her that her talent is special and arranges for her to perform at the local night club, but several problems arise.
Cake (2005)
A travel writer improves her love life when she becomes an editor for her father's wedding magazine.
Summer Hours (2008)
Two brothers and a sister witness the disappearance of their childhood memories when they must relinquish the family belongings to ensure their deceased mother's succession.
Click (2006)
A workaholic architect finds a universal remote that allows him to fast-forward and rewind to different parts of his life. Complications arise when the remote starts to overrule his choices.
Trench Road (2004)
Simply put, this is a movie about the identity crisis of a modern man.
Home Fries (1998)
Dorian and Angus chase down their womanizing stepfather with a helicopter, frightening him to death. In his effort to cover their tracks, Dorian begins investigating his stepfather's mistress, Sally. She works at a fast-food drive-through, she's pregnant and Dorian quickly falls in love with her. Unfortunately, his scheming mother wants Sally dead. And Sally isn't sure she wants Dorian to be her child's father and also his brother.
Ang Tanging Ina N'yong Lahat (2008)
With the one, big, happy family that she has, any woman would admire Ina Montecillo as the embodiment of a perfect mother. But after more than 30 years of doing everything for her family, she realizes she hasn't done anything for herself. Ina then embarks on a journey of finding her self-worth that surprisingly lands her as the President of the Philippines!
The Squid and the Whale (2005)
Based on the true childhood experiences of Noah Baumbach and his brother, The Squid and the Whale tells the touching story of two young boys dealing with their parents divorce in Brooklyn in the 1980's.
My One and Only (2009)
An unusual road trip movie about a mother driving her two sons from New York to Pittsburgh to St. Louis and eventually Hollywood in her quest to find a man to take care of them all.
The Private Lives of Pippa Lee (2009)
The life you love may be your own.... The wife of a much older man finds herself attracted to their neighbour's son, who is closer to her age.
Tamasha is about the journey of someone who has lost his edge in trying to behave according to socially acceptable conventions of the society. The film is based on the central theme of abrasion and loss of self that happens in an attempt to fit in oneself back.
Down to You (2000)
College coeds in New York City, Al, the son of a celebrity chef, and Imogen, a talented artist, become smitten the second they lay eyes on one another at a bar. However, the road to happiness is not a smooth one. Outside forces, including a predatory porn star who wants to lure Al into her bed, threaten to pull apart the young lovers before their romance has a chance to really flourish.
Dil Bole Hadippa! (2009)
Veera, a fire-cracker of a girl who lives in a small village but dreams of playing cricket in the big league. Rohan is an accomplished captain of a county cricket team in England. Rohan returns to India to captain his father's cricket team which has been losing for the last 8 years. In a Village where girls don't play Cricket, Veera has to put on a put on a turban & beard to live her dream.


Who's celebrating their birthday next month (Feb) or know of anyone that is?
I got money for my old phones!!!!!
Bensmom I hope you both can sort stuff out and maybe he might realise he can't be without you, and you him. It takes a while to sort your feelings out because you want to find out what your feeling is real. Best of luck with things!
the movies or the books?
I have seen all of the harry potter movies and I do really like them all. I havent read any of the books. Are the books better than the movies? The last one's not out yet, should I read the book first before I see the movie?
I need an oline job now!!!!!!!!
Bensmom Thanks for the info! I'm looking at it now. Happy New Year!
OK so I'm on the site. Do I have to write reviews? what do you have to do on this site? I've been hearing that it's a good site. Any info is appricated. Thanks. Happy New Year!
Bensmom Thank you so much for all that info! I bet Willie was georgus. I love Bernese. I will look up those sites for sure. I'm going to look up the bernese ireland one now. Happy New Year!


text:
type: post97
title:  Admin API
categories: XAP97
parent: administration-and-monitoring-overview.html
weight: 100
---

{{% ssummary%}}{{% /ssummary %}}

Before diving into the Admin API, here are some code examples showing how the Admin API can be used to display information on the of currently deployed services / components:

{{%tabs%}}
{{%tab "  GSA "%}}

```java

Admin admin = new AdminFactory().addGroup("myGroup").createAdmin();
// wait till things get discovered (you can also use specific waitFor)
for (GridServiceAgent gsa : admin.getGridServiceAgents()) {
    System.out.println("GSA [" + gsa.getUid() + "] running on Machine [" + gsa.getMachine().getHostAddress());
    for (AgentProcessDetails processDetails : gsa.getProcessesDetails()) {
        System.out.println("   -> Process [" + Arrays.toString(processDetails.getCommand()) + "]");
    }
}
```

{{% /tab %}}
{{%tab "  GSM "%}}

```java

Admin admin = new AdminFactory().addGroup("myGroup").createAdmin();
// wait till things get discovered (you can also use specific waitFor)
for (GridServiceManager gsm : admin.getGridServiceManagers()) {
    System.out.println("GSM [" + gsm.getUid() + "] running on Machine " + gsm.getMachine().getHostAddress());
}
```

{{% /tab %}}
{{%tab "  GSC "%}}

```java

Admin admin = new AdminFactory().addGroup("myGroup").createAdmin();
// wait till things get discovered (you can also use specific waitFor)
for (GridServiceContainer gsc : admin.getGridServiceContainers()) {
    System.out.println("GSC [" + gsc.getUid() + "] running on Machine " + gsc.getMachine().getHostAddress());
    for (ProcessingUnitInstance puInstance : gsc.getProcessingUnitInstances()) {
        System.out.println("   -> PU [" + puInstance.getName() + "][" +
        puInstance.getInstanceId() + "][" + puInstance.getBackupId() + "]");
    }
}
```

{{% /tab %}}
{{%tab "  Processing Unit "%}}

```java
Admin admin = new AdminFactory().addGroup("myGroup").createAdmin();
// wait till things get discovered (you can also use specific waitFor)
for (ProcessingUnit processingUnit : admin.getProcessingUnits()) {
    System.out.println("Processing Unit: " + processingUnit.getName() + " status: " + processingUnit.getStatus());
    if (processingUnit.isManaged()) {
        System.out.println("   -> Managing GSM: " + processingUnit.getManagingGridServiceManager().getUid());
    } else {
        System.out.println("   -> Managing GSM: NA");
    }
    for (GridServiceManager backupGSM : processingUnit.getBackupGridServiceManagers()) {
        System.out.println("   -> Backup GSM: " + backupGSM.getUid());
    }
    for (ProcessingUnitInstance processingUnitInstance : processingUnit) {
        System.out.println("   [" + processingUnitInstance.getClusterInfo() + "] on GSC [" +
         processingUnitInstance.getGridServiceContainer().getUid() + "]");
        if (processingUnitInstance.isEmbeddedSpaces()) {
            System.out.println("      -> Embedded Space [" + processingUnitInstance.getSpaceInstance().getUid() + "]");
        }
        Map<String, ServiceDetails> services = processingUnitInstance.getServiceDetailsByServiceId();

        for (ServiceDetails details : services.values()) {
        	System.out.println("      -> Service " + details);
        }
    }
}
```

{{% /tab %}}
{{%tab "  Space "%}}

```java

for (Space space : admin.getSpaces()) {
    System.out.println("Space [" + space.getUid() + "] numberOfInstances [" +
     space.getNumberOfInstances() + "] numberOfbackups [" +
     space.getNumberOfBackups() + "]");
    System.out.println("  Stats: Write [" + space.getStatistics().getWriteCount() + "/" +
    space.getStatistics().getWritePerSecond() + "]");
    for (SpaceInstance spaceInstance : space) {
        System.out.println("   -> INSTANCE [" + spaceInstance.getUid() + "] instanceId [" + spaceInstance.getInstanceId() +
        "] backupId [" + spaceInstance.getBackupId() + "] Mode [" + spaceInstance.getMode() + "]");
        System.out.println("         -> Host: " + spaceInstance.getMachine().getHostAddress());
        System.out.println("         -> Stats: Write [" + spaceInstance.getStatistics().getWriteCount() + "/" +
        spaceInstance.getStatistics().getWritePerSecond() + "]");
    }
    for (SpacePartition spacePartition : space.getPartitions()) {
        System.out.println("   -> Partition [" + spacePartition.getPartitiondId() + "]");
        for (SpaceInstance spaceInstance : spacePartition) {
            System.out.println("      -> INSTANCE [" + spaceInstance.getUid() + "]");
        }
    }
}
```

{{% /tab %}}
{{%tab "  Virtual Machine "%}}

```java

Admin admin = new AdminFactory().addGroup("myGroup").createAdmin();
// wait till things get discovered (you can also use specific waitFor)
System.out.println("VM TOTAL STATS: Heap Committed [" +
	admin.getVirtualMachines().getStatistics().getMemoryHeapCommittedInGB() +"GB]");
	System.out.println("VM TOTAL STATS: GC PERC [" +
	admin.getVirtualMachines().getStatistics().getGcCollectionPerc() + "], Heap Used [" +
 	admin.getVirtualMachines().getStatistics().getMemoryHeapPerc() + "%]");
for (VirtualMachine virtualMachine : admin.getVirtualMachines()) {
    System.out.println("VM [" + virtualMachine.getUid() + "] " +
			"Host [" + virtualMachine.getMachine().getHostAddress() + "] " +
            "GC Perc [" + virtualMachine.getStatistics().getGcCollectionPerc() + "], " +
            "Heap Usage [" + virtualMachine.getStatistics().getMemoryHeapPerc() + "%]");

    for (ProcessingUnitInstance processingUnitInstance : virtualMachine.getProcessingUnitInstances()) {
        System.out.println("   -> PU [" + processingUnitInstance.getUid() + "]");
    }
    for (SpaceInstance spaceInstance : virtualMachine.getSpaceInstances()) {
        System.out.println("   -> Space [" + spaceInstance.getUid() + "]");
    }
}
```

{{% /tab %}}
{{%tab "  Machine "%}}

```java

Admin admin = new AdminFactory().addGroup("myGroup").createAdmin();
// wait till things get discovered (you can also use specific waitFor)
for (Machine machine : admin.getMachines()) {
    System.out.println("Machine [" + machine.getUid() + "], " +
            "TotalPhysicalMem [" + machine.getOperatingSystem().getDetails().getTotalPhysicalMemorySizeInGB() + "GB], " +
            "FreePhysicalMem [" + machine.getOperatingSystem().getStatistics().getFreePhysicalMemorySizeInGB() + "GB]]");
    for (SpaceInstance spaceInstance : machine.getSpaceInstances()) {
        System.out.println("   -> Space [" + spaceInstance.getUid() + "]");
    }
    for (ProcessingUnitInstance processingUnitInstance : machine.getProcessingUnitInstances()) {
        System.out.println("   -> PU [" + processingUnitInstance.getUid() + "]");
    }
}
```

{{% /tab %}}
{{% /tabs %}}

{{% tip %}}
See a fully running example of a [Scaling Agent](/sbp/scaling-agent.html) as part of the Solutions & Patterns section.
{{% /tip %}}

# Admin Construction

The Admin API uses the `AdminFactory` in order to create `Admin` instances. Once working with the `Admin` is done, its `Admin#close()` method should be called.

The Admin discovers all the advertised services from the [Lookup Service](/product_overview/service-grid.html#lus). In order to define which lookup groups the `AdminFactory#addGroup` can be used. The lookup locators can also be used for non multicast enabled environment using `AdminFactory#addLocator` can be used. If the services started are secured, the username and password can be set on the Admin API as well.

# Discovery Process

Once the `Admin` is created, it will start to receive discovery events of all the advertised services / components within its lookup groups / lookup locators. Note, the events occur asynchronously and the data model within the Admin gets initialized in the background with services coming and going.

This means that just creating the `Admin` and calling a specific "getter" for a data structure might not return what is currently deployed, and one should wait till the structures are filled. Some components have a waitFor method that allow to wait for specific number of services to be up. When navigating the data model, the Admin API will provide its most up to date state of the system it is monitoring.

# Domain Model

The Admin Domain Model has representation to all GigaSpaces level main actors. They include:

![admin_DomainModel.jpg](/attachment_files/admin_DomainModel.jpg)

{{%section%}}
{{%column width="45%" %}}
- [GridServiceAgent](#GridServiceAgentLink)
- [GridServiceAgents](#GridServiceAgentsLink)
- [GridServiceManager](#GridServiceManagerLink)
- [GridServiceManagers](#GridServiceManagersLink)
- [GridServiceContainer](#GridServiceContainerLink)
- [GridServiceContainers](#GridServiceContainersLink)
- [LookupService](#LookupServiceLink)
- [LookupServices](#LookupServicesLink)
- [ProcessingUnit](#ProcessingUnitLink)
- [ProcessingUnitInstance](#ProcessingUnitInstanceLink)
- [ProcessingUnits](#ProcessingUnitsLink)
- [ServiceMonitors](#servicemonitors)

{{%/column%}}
{{%column width="45%" %}}

- [Space](#SpaceLink)
- [SpaceInstance](#SpaceInstanceLink)
- [Spaces](#SpacesLink)
- [VirtualMachine](#VirtualMachineLink)
- [VirtualMachines](#VirtualMachinesLink)
- [Machine](#MachineLink)
- [Machines](#MachinesLink)
- [OperatingSystem](#OperatingSystemLink)
- [OperatingSystems](#OperatingSystemsLink)
- [Transport](#TransportLink)
- [Transports](#TransportsLink)
{{%/column%}}
{{%/section%}}

{{%anchor GridServiceAgentLink%}}

|                |            |
|----------------|-------------|
|Name            |[GridServiceAgent]({{% api-javadoc %}}/org/openspaces/admin/gsa/GridServiceAgent.html)|
|Description     |A process manager that manages Service Grid processes such as GSM, GSC and LUS. More info [here](/product_overview/service-grid.html#gsa).|
|Main Operations |Allows to list all the currently managed processes.- Start processes (GSM, GSC, LUS).       |
|Runtime Events  | |

{{%anchor GridServiceAgentsLink%}}

|                |            |
|----------------|-------------|
|Name            |[GridServiceAgents]({{% api-javadoc %}}/org/openspaces/admin/gsa/GridServiceAgents.html)|
|Description     |Holds all the currently discovered Grid Service Agents.|
|Main Operations |Get all the currently discovered Grid Service Agents.Wait for X number of Grid Service Agents to be up.|
|Runtime Events  |Register for Grid Service Agent addition (discovery) and removals events. |

{{%anchor GridServiceManagerLink%}}

|                |            |
|----------------|-------------|
|Name            | [GridServiceManager]({{% api-javadoc %}}/org/openspaces/admin/gsm/GridServiceManager.html)|
|Description     |Managing Processing Unit deployments and Grid Service Containers. More info [here](/product_overview/service-grid.html#gsm).|
|Main Operations |Deploy Processing Units. Deploy pure Space Processing Units. Get the Grid Service Agent Managing it. Restart itself (if managed by a Grid Service Agent).Kill itself (if managed by a Grid Service Agent).|
|Runtime Events  |  |

{{%anchor GridServiceManagersLink%}}

|                |            |
|----------------|-------------|
|Name            |[GridServiceManagers]({{% api-javadoc %}}/org/openspaces/admin/gsm/GridServiceManagers.html)|
|Description     |Holds all the currently discovered Grid Service Managers.|
|Main Operations |Deploy Processing Units on a random Grid Service Manager. Deploy pure Space Processing Units on a random Grid Service Manager. Get all the currently discovered Grid Service Managers. Wait for X number of Grid Service Managers to be up.|
|Runtime Events  |Register for Grid Service Manager addition (discovery) and removals events.|

{{%anchor GridServiceContainerLink%}}

|                |            |
|----------------|-------------|
|Name            |[GridServiceContainer]({{% api-javadoc %}}/org/openspaces/admin/gsc/GridServiceContainer.html)|
|Description     | Container hosting Processing Unit Instances deployed from the GSM. More info [here](/product_overview/service-grid.html#gsc).|
|Main Operations | List currently running Processing Units Instances.|
|Runtime Events  | Register for Processing Unit Instance additions and removals events.|

{{%anchor GridServiceContainersLink%}}

|                |            |
|----------------|-------------|
|Name            | [GridServiceContainers]({{% api-javadoc %}}/org/openspaces/admin/gsc/GridServiceContainers.html)|
|Description     |Holds all the currently discovered Grid Service Containers.|
|Main Operations |Get all the currently discovered Grid Service Containers.{{<wbr>}}- Wait for X number of Grid Service Containers to be up.|
|Runtime Events  |Register for Grid Service Container addition (discovery) and removals events.  |

{{%anchor LookupServiceLink%}}

|                |            |
|----------------|-------------|
|Name            | [LookupService]({{% api-javadoc %}}/org/openspaces/admin/lus/LookupService.html)|
|Description     | A registry of services (GSM, GSC, Space Instances, Processing Unit Instances) that can be lookup up using it. More info [here](/product_overview/the-lookup-service.html#lus).|
|Main Operations | Get the Lookup Groups and Locator it was started with.|
|Runtime Events  |  |

{{%anchor LookupServicesLink%}}

|                |            |
|----------------|-------------|
|Name            |[LookupServices]({{% api-javadoc %}}/org/openspaces/admin/lus/LookupServices.html)|
|Description     |Holds all the currently discovered Lookup Services.|
|Main Operations |Get all the currently discovered Lookup Services.Wait for X number of Lookup Services to be up.|
|Runtime Events  |Register for Lookup Service addition (discovery) and removals events. |

{{%anchor ProcessingUnitLink%}}

|                |            |
|----------------|-------------|
|Name            |  [ProcessingUnit]({{% api-javadoc %}}/org/openspaces/admin/pu/ProcessingUnit.html)|
|Description     | A deployable processing unit running one or more Processing Unit Instances. Managed by the Grid Service Manager.|
|Main Operations |Undeploy the Processing Unit{{<wbr>}}- Increase the number of Processing Units Instances (if allowed).{{<wbr>}}- Decrease the number of Processing Unit Instances (if allowed).{{<wbr>}}- Get the deployment status of the Processing Unit.{{<wbr>}}- Get the managing Grid Service Manager.{{<wbr>}}- Get the list of backup Grid Service Managers.{{<wbr>}}- List all the currently running Processing Unit Instances.{{<wbr>}}- Wait for X number of Processing Unit Instances or be up.{{<wbr>}}- Get an embedded Space that the Processing Unit has.{{<wbr>}}- Wait for an embedded Space to be correlated (discovered) with the Processing Unit.|
|Runtime Events  |Register for Processing Unit Instances additions and removals events.{{<wbr>}}- Register for Processing Unit Instance provision attempts, failures, success and pending events.{{<wbr>}}- Register for Managing Grid Service Manager change events.{{<wbr>}}- Register for Space correlation events.{{<wbr>}}- Register for deployment status change events.{{<wbr>}}- Register for backup Grid Service Manager change events.|

{{%anchor ProcessingUnitInstanceLink%}}

|                |            |
|----------------|-------------|
|Name            | [ProcessingUnitInstance]({{% api-javadoc %}}/org/openspaces/admin/pu/ProcessingUnitInstance.html)|
|Description     | An actual instance of a Processing Unit running within a Grid Service Container.|
|Main Operations | Destroy itself (if SLA is breached, will be instantiated again).{{<wbr>}}- Decrease itself (and destroying itself in the process). Will not attempt to create it again.{{<wbr>}}- Relocate itself to a different Grid Service Container.{{<wbr>}}- List all its inner services (such as event containers).{{<wbr>}}- Get the embedded Space Instance running within it (if there is one).{{<wbr>}}- Get the JEE container details if it is a web processing unit.|
|Runtime Events  | - [ServiceMonitors](#servicemonitors)|

{{%anchor ProcessingUnitsLink%}}

|                |            |
|----------------|-------------|
|Name            |[ProcessingUnits]({{% api-javadoc %}}/org/openspaces/admin/pu/ProcessingUnits.html)|
|Description     |  Holds all the currently deployed Processing Units|
|Main Operations |Get all the currently deployed Processing Units.{{<wbr>}}- Wait for (and return) a Processing by a specific name.|
|Runtime Events  |Register for Processing Unit deployments and undeployment events.{{<wbr>}}- Register for all Processing Unit Instance addition and removal events (across all Processing Units).{{<wbr>}}- Register for all Processing Unit Instance provision attempts, failures, success and pending events (across all Processing Units).{{<wbr>}}- Register for Managing Grid Service Manager change events on all Processing Units.{{<wbr>}}- Register for backup Grid Service Manager change events on all Processing Units.|

{{%anchor SpaceLink%}}

|                |            |
|----------------|-------------|
|Name            | [Space]({{% api-javadoc %}}/org/openspaces/admin/space/Space.html)|
|Description     | Composed of one or more Space Instances to form a Space topology (cluster)|
|Main Operations | Get all the currently running Space Instance that are part of the Space.{{<wbr>}}- Wait for X number of Space Instances to be up.{{<wbr>}}- Get aggregated Space statistics.{{<wbr>}}- Get a clustered [GigaSpace](./the-gigaspace-interface.html) to perform Space operations.|
|Runtime Events  | Register for Space Instance additions and removals events.{{<wbr>}}- Register for Space Instance change mode events (for all Space Instances that are part of the Space).{{<wbr>}}- Register for Space Instance replication status change events (for all Space Instances that are part of the Space).{{<wbr>}}- Register for aggregated Space statistics events (if monitoring).|

{{%anchor SpaceInstanceLink%}}

|                |            |
|----------------|-------------|
|Name            |[SpaceInstance]({{% api-javadoc %}}/org/openspaces/admin/space/SpaceInstance.html)|
|Description     |An actual instance of a Space that is part of a topology (cluster), usually running within a Processing Unit Instance|
|Main Operations | Get its Space Mode (primary or backup).{{<wbr>}}- Get its replication targets.{{<wbr>}}- Get a direct [GigaSpace](./the-gigaspace-interface.html) to perform Space operations.{{<wbr>}}- Get Space Instance statistics.|
|Runtime Events  |Register for replication status change events.{{<wbr>}}- Register for Space Mode change events{{<wbr>}}- Register for Space Instance statistics (if monitoring).|

{{%anchor SpacesLink%}}

|                |            |
|----------------|-------------|
|Name            |[Spaces]({{% api-javadoc %}}/org/openspaces/admin/space/Spaces.html)|
|Description     | Holds all the currently running Spaces|
|Main Operations |Get all the currently running Spaces.{{<wbr>}}- Wait for (and return) a specific Space by name.|
|Runtime Events |Register for Space additions and removal events.{{<wbr>}}- Register for Space Instance additions and removal events (across all Spaces).{{<wbr>}}- Register for Space Instance Mode change events (across all Space Instances).{{<wbr>}}- Register for Space Instance replication change events (across all Space Instances).{{<wbr>}}- Register for aggregated Space level statistics change events (across all Spaces, if monitoring).{{<wbr>}}- Register for Space Instance statistics change events (across all Space Instances, if monitoring).|

{{%anchor VirtualMachineLink%}}

|                |            |
|----------------|-------------|
|Name            |  [VirtualMachine]({{% api-javadoc %}}/org/openspaces/admin/vm/VirtualMachine.html)|
|Description     | A virtual machine (JVM) that is currently running at least one GigaSpaces component / service.|
|Main Operations |Get the Grid Service Agent (if exists).{{<wbr>}}- Get the Grid Service Manager (if exists).{{<wbr>}}- Get the Grid Service Container (if exists).{{<wbr>}}- Get all the Processing Unit Instances that are running within the Virtual Machine.{{<wbr>}}- Get all the Space Instances that are running within the Virtual Machine.{{<wbr>}}- Get the details of the Virtual Machine (min/max memory, and so on).{{<wbr>}}- Get the statistics of the Virtual Machine (heap used, and so on).|
|Runtime Events  | Register for Processing Unit Instance additions and removals events.{{<wbr>}}- Register for Space Instance additions and removals events.{{<wbr>}}- Register for statistics change events (if monitoring).|

{{%anchor VirtualMachinesLink%}}

|                |            |
|----------------|-------------|
|Name            |[VirtualMachines]({{% api-javadoc %}}/org/openspaces/admin/vm/VirtualMachines.html)|
|Description     | Holds all the currently discovered Virtual Machines|
|Main Operations | Get all the currently discovered Virtual Machines.{{<wbr>}}- Get aggregated Virtual Machines details.{{<wbr>}}- Get aggregated Virtual Machines statistics.|
|Runtime Events  | Register for Virtual Machines additions and removals events.{{<wbr>}}- Register for aggregated Virtual Machines statistics events (if monitoring).{{<wbr>}}- Register for Virtual Machine level statistics change events (across all Virtual Machines, if monitoring).|

{{%anchor MachineLink%}}

|                |            |
|----------------|-------------|
|Name            | [Machine]({{% api-javadoc %}}/org/openspaces/admin/machine/Machine.html)|
|Description     | An actual Machine (identified by its host address) running one or more GigaSpaces components / services in one or more Virtual Machines. Associated with one Operating System|
|Main Operations | Get all the Grid Service Agents running on the Machine.{{<wbr>}}- Get all the Grid Service Containers running on the Machine.{{<wbr>}}- Get all the Grid Service Managers running on the Machine.{{<wbr>}}- Get all the Virtual Machines running on the Machine.{{<wbr>}}- Get all the Processing Unit Instances running on the Machine.{{<wbr>}}- Get all the Space Instances running on the Machine.{{<wbr>}}- Get the Operating System the Machine is running on.|
|Runtime Events  | Register for Space Instances additions and removals events from the Machine.{{<wbr>}}- Register for Processing Unit Instance additions and removals events from the Machine.|

{{%anchor MachinesLink%}}

|                |            |
|----------------|-------------|
|Name            | [Machines]({{% api-javadoc %}}/org/openspaces/admin/machine/Machines.html)|
|Description     | Holds all the currently discovered Machines|
|Main Operations |  * Get all the currently running Machines.{{<wbr>}}- Wait for X number of Machines or be up.|
|Runtime Events  | * Register for Machine additions and removals events.|

{{%anchor OperatingSystemLink%}}

|                |            |
|----------------|-------------|
|Name            | [OperatingSystem]({{% api-javadoc %}}/org/openspaces/admin/os/OperatingSystem.html)|
|Description     | The Operating System GigaSpaces components / services are running on. Associated with one Machine.|
|Main Operations | Get the details of the Operating System.{{<wbr>}}- Get the operating system statistics.|
|Runtime Events  | Register for statistics change events (if monitoring).|

{{%anchor OperatingSystemsLink%}}

|                |            |
|----------------|-------------|
|Name            |[OperatingSystems]({{% api-javadoc %}}/org/openspaces/admin/os/OperatingSystems.html)|
|Description     |Holds all the currently discovered Operating Systems|
|Main Operations |Get all the current Operating Systems.{{<wbr>}}- Get the aggregated Operating Systems details.{{<wbr>}}- Get the aggregated Operating Systems statistics.|
|Runtime Events  | Register for aggregated Operating Systems statistics change events (if monitoring).{{<wbr>}}- Register for Operating System level statistics change events (across all Operating Systems, if monitoring).|

{{%anchor TransportLink%}}

|                |            |
|----------------|-------------|
|Name            |[Transport]({{% api-javadoc %}}/org/openspaces/admin/transport/Transport.html)|
|Description     | The communication layer each GigaSpaces component / service uses|
|Main Operations | Get the Transport details (host, port).{{<wbr>}}- Get the Transport statistics.|
|Runtime Events  | Register for Transport statistics change events (if monitoring).|

{{%anchor TransportsLink%}}

|                |            |
|----------------|-------------|
|Name            | [Transports]({{% api-javadoc %}}/org/openspaces/admin/transport/Transports.html)|
|Description     | Holds all the currently discovered Transports|
|Main Operations |  Get all the current Transports.{{<wbr>}}- Get the aggregated Transports details.{{<wbr>}}- Get the aggregated Transports statistics.|
|Runtime Events  |Register for aggregated Transports statistics change events (if monitoring).{{<wbr>}}- Register for Transport level statistics change events (across all Transports, if monitoring).|

{{% note %}}
The `Admin` functionality is designed for interacting with a service grid deployment. In the case of `StandaloneProcessingUnitContainer` and `IntegratedProcessingUnitContainer`, components such as `GridServiceAgent` or `GridServiceManager` are not started by default, therefore portions of the Admin functionality will not be available.
{{%/note%}}

# Accessing the Domain Model

There are two ways the Admin API can be used to access information the Admin API can provide.

- Call specific "getters" for the data and iterate over them (as shown in the example at the top of the page).
- Register for specific events using the Admin API. Events are handled by different components of the Admin API in similar manner. We will take one of them and use it as a reference example.

If we want to register, for example, for Grid Service Container additions, we can use the following code (note, removing the event listener is not shown here for clarity):

```java
admin.getGridServiceContainers().getGridServiceContainerAdded().add(new GridServiceContainerAddedEventListener() {
    public void gridServiceContainerAdded(GridServiceContainer gridServiceContainer) {
        // do something here
    }
});
```

Removals are done in similar manner:

```java
admin.getGridServiceContainers().getGridServiceContainerRemoved().add(new GridServiceContainerRemovedEventListener() {
    public void gridServiceContainerRemoved(GridServiceContainer gridServiceContainer) {
        // do something here
    }
});
```

Since both removals and additions are common events that we would like to register for in one go, we can use:

```java
admin.getGridServiceContainers().addLifecycleListener(new GridServiceContainerLifecycleEventListener() {
    public void gridServiceContainerAdded(GridServiceContainer gridServiceContainer) {
        // do something here
    }

    public void gridServiceContainerRemoved(GridServiceContainer gridServiceContainer) {
        // do something here
    }
});
```

All other data structures use similar API to register for events. Some might have specific events that goes beyond just additions and removals, but they still use the same model. For example, here is how we can register for Space Mode change events across all currently running Space topologies and Space Instances:

```java
admin.getSpaces().getSpaceModeChanged().add(new SpaceModeChangedEventListener() {
    public void spaceModeChanged(SpaceModeChangedEvent event) {
        System.out.println("Space [" + event.getSpaceInstance().getSpace().getName() + "] " +
		"Instance [" + event.getSpaceInstance().getInstanceId() + "/" +
                event.getSpaceInstance().getBackupId() + "] " +
		"changed mode from [" + event.getPreviousMode() + "] to [" + event.getNewMode() + "]");
    }
});
```

Of course, we can register the same listener on a specific `Space` topology or event on a specific `SpaceInstance`.

Last, the `Admin` interface provides a one stop method called `addEventListener` that accepts an `AdminListener`. Most events listener implement this interface. One can create a class that implements several chosen listener interfaces, call the `addEventListener` method, and they will automatically be added to their respective components. For example, if our listener implements `GridServiceContainerAddedEventListener` and `GridServiceManagerAddedEventListener`, the listener will automatically be added to the `GridServiceManagers` and `GridServiceContainers`.

# Details and Statistics

- Some components in the Admin API can provide statistics. For example, a `SpaceInstance` can provide statistics on how many times the read API was called on it. Statistics change over time, and in order to get them either the "getter" for the Statistics can be used, or a statistics listener can be registered for statistics change events.

- Details of a specific component provide information that does not change over time, but can be used to provide more information regarding the component, or to compute statistics. For example, the VirtualMachine provides in its details the minimum and maximum heap memory size, which the VirtualMachine statistics provide the currently used heap memory size. The detailed information is used to provide the percentage used in the Virtual Machine statistics.

- The Admin API also provide aggregated details and statistics. For example, the `Space` provides `SpaceStatistics` allowing to get the aggregated statistics of all the different Space Instances that belong to it.

- Each component in the Admin API that can provide statistics (either direct statistics, or aggregated statistics) implements the `StatisticsMonitor` interface. The statistics monitor allows to start to monitor statistics and stop to monitor statistics. Monitoring for statistics is required if one wishes to register for statistics change events. The interval that statistics will be polled is controlled using the statistics interval.

- The statistics interval is important event when the Admin API is not actively polling for statistics. Each call to a "getter" of statistics will only perform a remote call to the component if the last statistics fetch happened **before** the statistics interval. This behavior allows for users of the Admin API to not worry about "hammering" different components for statistics since the Admin will make sure that statistics calls are cached internally for the statistics interval period.

- A `SpaceInstance` implements the `StatisticsMonitor` interface. Calling `startMonitor` and `stopMonitor` on it will cause monitoring of statistics to be enabled or disabled on it.

- `Space` also implements the `StatisticsMonitor` interface. Calling `startMonitor` on it will cause it to start monitoring all its `SpaceInstance` s. If a `SpaceInstance` is discovered after the the call to `startMonitor` occurred, it will start monitoring itself automatically. This means that if the a `SpaceInstanceStatisticsChangedEventListener` was registered on the `Space`, it will automatically start to get Space Instance statistics change events for the newly discovered `SpaceInstance`.

- `Spaces` also implements the `StatisticsMonitor` interface. Calling `startMonitor` on it will cause it to start monitoring all the `Space` s it has (and as a result, also `SpaceInstance` s, see the paragraph above). A `SpaceInstanceStatisticsChangedEventListener` can also be registered on the `Spaces` level as well.

- The above Space level statistics behavior works in much the way with other components. For example, the `VirutalMachine` and `VirtualMachines`, `Transport` and `Transports`, `OperatingSystem` and `OperatingSystems`.

- The `Admin` interface also implements the `StatisticsMonitor` interface. Calling `startMonitor` on it will cause all holders to start monitoring. These include: `Spaces`, `VirtualMachines`, `Transports`, and `OperatingSystems`.

# Space Runtime Statistics

The space maintains statistics information about all the data types (e.g. space class types) it stores and the amount of space objects stored in memory for each data type. Below example how to retrieve this data. This approach avoiding the need to use the `GigaSpace.Count()` that is relatively expensive with spaces that store large number of objects.

If you are monitoring the space class instance count with some monitoring tool you should use the approach below rather calling the `GigaSpace.Count()`.

```java
public static void printAllClassInstanceCountForAllPartitions (Admin admin , String spaceName) throws Exception
{
	Space space = admin.getSpaces().waitFor(spaceName, 10 , TimeUnit.SECONDS);
	SpacePartition spacePartitions[] = space.getPartitions();
	System.out.println(spaceName + " have " +spacePartitions.length + " Partitions , Total " + space.getTotalNumberOfInstances() + " Instances");
	Arrays.sort(spacePartitions, new SpacePartitionsComperator ());

	for (int i = 0; i < spacePartitions.length; i++) {
		SpacePartition partition = spacePartitions [i];
		while (partition.getPrimary()==null)
		{
			Thread.sleep(1000);
		}

		SpaceInstance primaryInstance = partition.getPrimary();
		System.out.println ("Partition " + partition.getPartitionId() + " Primary:");
		Map<String, Integer> classInstanceCountsPrimary = primaryInstance.getRuntimeDetails().getCountPerClassName();
		Iterator<String> keys = classInstanceCountsPrimary.keySet().iterator();
		while (keys.hasNext())
		{
			String className = keys.next();
			System.out.println ("Class:" + className +" Instance count:" + classInstanceCountsPrimary.get(className));
		}

		SpaceInstance backupInstance = partition.getBackup();
		System.out.println ("Partition " + partition.getPartitionId() + " Backup:");

		Map<String, Integer> classInstanceCountsBackup = backupInstance .getRuntimeDetails().getCountPerClassName();
		keys = classInstanceCountsPrimary.keySet().iterator();
		while (keys.hasNext())
		{
			String className = keys.next();
			System.out.println ("Class:" + className +" Instance count:" + classInstanceCountsBackup.get(className));
		}

	}
}

static class SpacePartitionsComperator implements Comparator<SpacePartition>{
	public int compare(SpacePartition o1,SpacePartition o2) {
		if (o2.getPartitionId() > o1.getPartitionId())
			return 0;
		else
			return 1;
	}
}
```

# Monitoring the Mirror Service

You may monitor various aspects of the mirror service using the administration and monitoring API.
The mirror statistics are available using the `SpaceInstance` statistics. They can be used to monitor the state of the mirror space and whether or not it is functioning properly. These statistics are relevant only for a mirror space instance, and are not available for ordinary space instances. The code below traverses all the space instances and finds the mirror space by retrieving the mirror statistics object (if it isn't null this means it's a mirror space). It then prints out some of the available statistics.

```java
for (Space space : admin.getSpaces()) {
    System.out.println("Space [" + space.getUid() + "] numberOfInstances [" +
     space.getNumberOfInstances() + "] numberOfbackups [" +
     space.getNumberOfBackups() + "]");

    for (SpaceInstance spaceInstance : space) {
        System.out.println("   -> INSTANCE [" + spaceInstance.getUid() + "] instanceId [" + spaceInstance.getInstanceId() +
        "] backupId [" + spaceInstance.getBackupId() + "] Mode [" + spaceInstance.getMode() + "]");
        System.out.println("         -> Host: " + spaceInstance.getMachine().getHostAddress());

         MirrorStatistics mirrorStat = spaceInstance.getStatistics().getMirrorStatistics();
         // check if this instance is mirror
         if(mirrorStat != null)
         {

            System.out.println("Mirror Stats:");
            System.out.println("total operation count:" + mirrorStat.getOperationCount());
            System.out.println("successful operation count:" + mirrorStat.getSuccessfulOperationCount());
            System.out.println("failed operation count:" + mirrorStat.getFailedOperationCount());
         }
    }

}

```

For more information please refer to the API documentation: [MirrorStatistics]({{% api-javadoc %}}/com/gigaspaces/cluster/replication/async/mirror/MirrorStatistics.html)

# Monitoring the Remote Transport Activity

# PU Status Changed Events

It is possible to receive notifications about the deployment status of a Processing Unit. An event listener can be attached to the Admin that delivers events describing the current and previous [DeploymentStatus]({{% api-javadoc %}}/index.html?org/openspaces/admin/pu/DeploymentStatus.html) of a Processing Unit.
Here is an example:

{{%tabs%}}
{{%tab " ChangeStatus"%}}

```java
public class ProcessingUnitStatusChanged {

	public void processingUnitStatusChanged() {

		Admin admin = new AdminFactory().addGroup("myGroup").createAdmin();

		MyProcessingUnitStatusChangedEventListener listener = new MyProcessingUnitStatusChangedEventListener();

		admin.addEventListener(listener);
	}
}
```
{{%/tab%}}

{{%tab " Listener"%}}

```java
public class MyProcessingUnitStatusChangedEventListener implements
		ProcessingUnitStatusChangedEventListener {

	@Override
	public void processingUnitStatusChanged(
			ProcessingUnitStatusChangedEvent event) {

		DeploymentStatus newStatus = event.getNewStatus();

		if (newStatus.equals(DeploymentStatus.INTACT))
		{
			// All has settled down
		}
	}
}
```
{{%/tab%}}
{{%/tabs%}}

{{%anchor servicemonitors%}}

# Service Monitors

The admin API also allows you to monitor XAP services. The information is available through the [ProcessingUnitInstanceStatistics]({{% api-javadoc %}}/index.html?org/openspaces/admin/pu/ProcessingUnitInstanceStatistics.html).

| Service | Description |
|:--------|:------------|
|[WebRequestsServiceMonitors]({{% api-javadoc %}}/index.html?org/openspaces/pu/container/jee/stats/WebRequestsServiceMonitors.html) |Statistics monitor information for JEE servlet requests.|
|[RemotingServiceMonitors]({{% api-javadoc %}}/index.html?org/openspaces/remoting/RemotingServiceDetails.html) | Generic remoting service details.|
|[EventContainerServiceMonitors]({{% api-javadoc %}}/index.html?org/openspaces/events/EventContainerServiceMonitors.html) | A generic event container service monitors.|
|[PollingEventContainerServiceMonitors]({{% api-javadoc %}}/index.html?org/openspaces/events/polling/PollingEventContainerServiceMonitors.html) |Polling container service monitors.|
|[NotifyEventContainerServiceMonitors]({{% api-javadoc %}}/index.html?org/openspaces/events/notify/NotifyEventContainerServiceMonitors.html) |Notify container service monitors.|
|[AsyncPollingEventContainerServiceMonitors]({{% api-javadoc %}}/index.html?org/openspaces/events/asyncpolling/AsyncPollingEventContainerServiceMonitors.html)  |Async Polling container service monitors.|

Here is an example how you can obtain this information:

```java
public void serviceMonitors() {
    Admin admin = new AdminFactory().createAdmin();

	for (ProcessingUnit processingUnit : admin.getProcessingUnits()) {

		for (ProcessingUnitInstance processingUnitInstance : processingUnit.getInstances()) {

			ProcessingUnitInstanceStatistics processingUnitInstanceStatistics = processingUnitInstance.getStatistics();

			if (processingUnitInstanceStatistics != null) {

				WebRequestsServiceMonitors webRequestsServiceMonitors = processingUnitInstanceStatistics.getWebRequests();

				RemotingServiceMonitors remoting = processingUnitInstanceStatistics.getRemoting();

				Map<String, EventContainerServiceMonitors> eventContainers = processingUnitInstanceStatistics.getEventContainers();

				Map<String, PollingEventContainerServiceMonitors> pollingEventContainers = processingUnitInstanceStatistics.getPollingEventContainers();

				Map<String, NotifyEventContainerServiceMonitors> notifyEventContainers = processingUnitInstanceStatistics.getNotifyEventContainers();

				Map<String, AsyncPollingEventContainerServiceMonitors> asyncPollingEventContainers = processingUnitInstanceStatistics.getAsyncPollingEventContainers();
			}
		}
	}
}
```

You can also attach a [ProcessingUnitInstanceStatisticsChangedEventListener]({{% api-javadoc %}}/index.html?org/openspaces/admin/pu/events/ProcessingUnitInstanceStatisticsChangedEventListener.html) to process units that will fire by default every 5 second.

```java
public void serviceMonitorsEventListeners() {
	Admin admin = new AdminFactory().createAdmin();

	admin.getProcessingUnits()
	    .getProcessingUnit("myProcessingUnit")
		.getProcessingUnitInstanceStatisticsChanged()
		.add(new ProcessingUnitInstanceStatisticsChangedEventListener() {

		@Override
		public void processingUnitInstanceStatisticsChanged(ProcessingUnitInstanceStatisticsChangedEvent event) {

		    ProcessingUnitInstanceStatistics statistics = event.getStatistics();

			Map<String, EventContainerServiceMonitors> eventContainers = statistics.getEventContainers();

			WebRequestsServiceMonitors webRequests = statistics.getWebRequests();

			// .....
		}
	});
}
```