jbosseap6 pass guarantee paper
TRANSCRIPT
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
1/56
Redhat JBoss EAP 6 - JB248 Exam Paper
v2.0
SECTION I 2
1. INSTALL JBOSS IN /OPT 2
CONFIGURE DOMAIN , SERVER GROUP AND DEFAULT INSTANCE BY USING DEFAULT PROFILE. DO
NOT USE “HA” , “FULL” & “FULL-HA”..........................................................................................................
32.1. CON!"#RE $O%A!N &!'( NA%E A) )ER*ER1 ......................................................................................32.2. CON!"#RE )ER*ER "RO#P AN$ ONE JBO)) !N)'ANCE .......................................................................33.HTTP PARAMETER TUNING.....................................................................................................................
4
3.1. Use the default standard http connector ............................................................................................4
3.2. Set Max Connections to 50 for http connector ...................................................................................4
3.3. Configure AJ Connector .................................................................................................................5 ADD A SOCET TO THE SOCET BINDING GROUP...........................................................................................
8'O A$$ A )OC+E' 'O '(E )OC+E' B!N$!N" "RO#P, !))#E '(E OO&!N" CO%%AN$, REPAC!N" '(EPRO'OCO AN$ POR' &!'( '(E ONE) O# NEE$. .............................................................................................
8
ADD THE SOCET BINDING TO THE !EB SUBSYSTEM .....................................................................................
8!))#E '(E OO&!N" CO%%AN$ 'O A$$ A CONNEC'OR 'O '(E &EB )#B))'E%, )#B)'!'#'!N" '(E )OC+E'B!N$!N" NA%E AN$ PRO'OCO &!'( '(E ONE) O# NEE$. ..............................................................................8".JVM CONFIGURATION...........................................................................................................................
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
2/56
8
4.1. Configure J!M at group le"el. #"en if $ou add additional instances% ne& J!M settings &ould get
replicated. ....................................................................................................................................................'
STAC SI#E ADDITION CANNOT BE DONE FROM MANAGED CONSOLE..........................................................
/ A$$!N" '(E P!ECE !N BE'&EEN "RO#P !NE) ................................................................................................10
$.REMOVE THE E%AMPLEDS !HICH IS IN-MEMORY BASED DATASOURCE. ...........................................11
5.1.
#xa(ple)S )atasource in in*(e(or$ +ased )atasource &hich co(es default &ith J,oss #A -.0.
)o not re(o"e h2 dri"er. ...........................................................................................................................
11.CONFIGURE NON'%ADATASOURCE....................................................................................................11
-.1. Configure on*/A datasource &ith +elo& attri+utes .......................................................................11(.DBMS SECURITY SETUP.......................................................................................................................
14
.1.
Application authentication &ith )ata+ase. ......................................................................................14).DEPLOY THE APPLICATION AS ROOT CONTE%T ..................................................................................1
*.CONFIGURE %A DATASOURCE.............................................................................................................
18
SECTION II .....................................................................................................................................................1*
10.CONFIGURE T!O HOST CONTROLLERS ............................................................................................1/
10.1.
Configure t&o groups. ................................................................................................................
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
3/56
1
11.CONFIGURE TCP BASED CLUSTERED ENVIRONMENT SETUP. ..........................................................22
12.CONFIGURE APACHE BASED LOAD BALANCER. ................................................................................23
13.
CONFIGURE JMS...............................................................................................................................
26
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
4/56
'here od e 2 se5to7s a7d ea5h se5to7 s 09 o: mar;s. o have to a5heve 21+ %ar;s ot o:
3++.
CAUTION #ser od 7ot e provded th root a55ess. 'o per:orm a the a5tvtes, top5, test the 5o7:=rato7 ?esto7 od hep >o to assst that >or 5o7:=rato7 s 5ompete a7d s55ess:. ! >o =et the rest ased o7 test the 5o7:=rato7, the7 >oare od e =ett7= 5e7t per5e7t mar;s :or that top5
S69:0; I
1. I;-9488 JB0-- :; /O9
)etp JBoss 7 doma7 mode th 7staato7 dre5tor> as /09/6
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
5/56
"ve the )pe5:ed Path è /09
"ve the 5rede7tas as
U-6 D6>7:; 4--0 D4-669
2
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
6/56
S96?" %ove the !7staed JBoss EAP.
@ 7 =>0--'64'.+ 6:;/074:;.-5 &
C0;:6 074:; , -66 0 4; 6489 :;-94;6 > -:; 64890:86. DO NOT -6 “54” , “88” & “88'54”
Co7:=re doma7 th 7ame as server1
NOTE $o NO' mod:> a7> 5o7:=rato7s a7d se de:at sett7=s.
S089:0;
S96?1 5p GR optex248doma7 -661
S96?2 )tart 7 a5;=ro7d
/09/6o start 7 server1 doma7, t od e 7d to oopa5; !P-Address 12.0.0.1.Rema77= 8 Hesto7s od have to e per:ormed o7 ths e7vro7me7t.
IMPORTANT 'a;e a5;p o: doma7.xm I host.xm :es 7sde server1 doma7.
T6-9:; 956 C0;:49:0;
A55ess the JBoss $oma7 5o7soeD httpDo5ahostD///0
C66;9:48- Y0 7:59 546 4864 :6; 5:86 :;-9488:;
L0:; 6>7:;
P4-- 4-669
NOTE D68696 6
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
7/56
3
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
8/56
)tep3D Co7:=re o7e JBoss !7sta75e th 7ame as S66 O;6
"ve the port-o::set as 0 @ero
T6-9:; 956 C0;:49:0;
A55ess the #R 7 roserD httpDo5ahostD8080
3. H99 447696 T;:;
#se the de:at sta7dard http 5o77e5tor httpDo5ahostD8080
T6-9:; 956 C0;:49:0;
A55ess httpDo5ahostD8080 à o shod see the JBoss e5ome Pa=e.
)et %ax Co77e5to7s to 0 :or http 5o77e5tor
S96 ?1
$ cd /home/jboss/jboss-eap-6.0/bin
$ ./jboss-cli.sh -c --controller=localhost:9999
[domain@localhost:9999 connector=http] pwd/profile=defalt/sbs!stem=web/connector=http [domain@"0.""."0#.":9999connector=http] :read-resource
{%otcome% =& %sccess%' %reslt% =& (
%enable-loo)ps% =& false' %enabled% =& tre' %e*ector% =& ndefined'
"max-connections" => undefined,
%ma*-post-si+e% =& "09,#"' %ma*-sae-post-si+e% =& 096' %name% =& %http%'
%protocol% =& %1/.%' %pro*!-name% =& ndefined' %pro*!-port% =& ndefined'%redirect-port% =& 233' %scheme% =& %http%' %secre% =& false' %soc)et-bindin4% =&%http%' %ssl% =& ndefined'
%irtal-serer% =& ndefined
4
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
9/56
}
}
S96 ?2 S69 956 599 74
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
10/56
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
11/56
"o to Pro:es ta a7d the7 see5t de:at pro:e as sho 7 eo p5tre s7apshot.
(t o7 K!6>” )s>stem a7d ht servet(ttp ta a7d add a
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
12/56
6
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
13/56
O9:0; ?2 U-6 CLI 90 0;:6 AJP C0;;690
[domain@ localhost:9999 /] /profile=defalt/sbs!stem=web/connector=ajp:readresorcerecrsie= tre7
{
%otcom e% =& %sccess%' %reslt% =& ( %enable-loo)ps% =& false' %enabled% =& tre'%m a*-post-si+e% =& "09,#"' %m a*-sae-post-si+e% =& 096' %protocol% =& %81/.3%'%redirect- port% =& 23' %schem e% =& %http%'
%secre% =& false' %soc)et-bindin4% =& %ajp%' %ssl% =& ndefined' %irtal-serer% =&
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
14/56
ndefined
}
}
S96 ?1 A 956 ;66--4 0;;690- 90 956 6> ->--967
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
15/56
' o add a 5o77e5tor to the e ss>stem, t 7eeds to have a so5;et 7d7=. 'he so5;et 7d7= sadded to the so5;et 7d7= =rop sed > >or server or server =rop. 'he :oo7= steps assme
that >or server =rop s P0'G0 a7d that >or so5;et 7d7= =rop s sta7dard-so5;ets.
A 4 -069 90 956 -069 >:;:; 0.
'o add a so5;et to the so5;et 7d7= =rop, sse the :oo7= 5omma7d, repa57= the proto5o a7dport th the o7es >o 7eed.
[domain@localhost:9999/]/soc)et-bindin4-4rop=standardsoc)ets/soc)et-bindin4=ajp:addport=20097
A 956 -069 >:;:; 90 956 6> ->--967.
!sse the :oo7= 5omma7d to add a 5o77e5tor to the e ss>stem, ssttt7= the so5;et7d7= 7ame a7d proto5o th the o7es >o 7eed.
[domain@localhost:9999/]/profile=defalt/sbs!stem=web/connector= ajp:addsoc)etbindi
n4=ajp'protoco l=%81/.3%'enabl ed= tre'scheme= %http% 7
". JVM C0;:49:0;
Co7:=re J*% at =rop eve. Eve7 : >o add addto7a 7sta75es, 7e J*% sett7=s od =etrep5ated.
G08668 JVM :95 564 -:611)27P67 G6; :95 -:6$127S94 S:6
2$O9:0;?1S692 07 M4;46 D074:; C0;-086
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
16/56
8
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
17/56
S94 S:6 4:9:0; 4;;09 >6 0;6 07 M4;46 C0;-086
$ cd /home/jboss/jboss-eap-6.0/bin
$ ./boss-cli.s! -c --controller=local!ost:
[domain@"0.""."0#.":9999 jm=5rop;eel] cd /server-#rou$=%rod-
&rou$/vm=&rou$'evel
[domain@"0.""."0#.":9999 jm=5rop;eel] :read-resource
{%otcome% =& %sccess%' %reslt% =& (
%a4ent-lib% =& ndefined' %a4ent-path% =& ndefined' %en-classpath-i4nored% =&ndefined' %enironment-ariables% =& ndefined'
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
18/56
"!ea$-sie" => "**+m",
%jaa-a4ent% =& ndefined' %jaa-home% =& ndefined' %jm-options% =& ndefined'
"max-!ea$-sie" => "**+m", "max-$erm#en-sie" => "5*m", "$erm#en-sie" => "5*m","stac-sie" => undefined,%t!pe% =& ndefined
}
/
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
19/56
}
A:; S94 S:6 0 2$
[domain@"0.""."0#.":9999 jm=5rop;eel] :write-attribute(name=stac-sie,value=5){%otcome% =& %sccess%' %reslt% =& ndefined' %serer-4rops% =& 1rod-5rop
}
T6-9:; 956 C0;:49:0;
[domain@"0.""."0#.":9999 jm=5rop;eel] :read-resorce
{
%otcome% =& %sccess%' %reslt% =& (
%a4ent-lib% =& ndefined' %a4ent-path% =& ndefined' %en-classpath-i4nored% =&ndefined' %enironment-ariables% =& ndefined'
"!ea$-sie" => "**+m",
%jaa-a4ent% =& ndefined' %jaa-home% =& ndefined' %jm-options% =& ndefined' % max-!ea$-sie" => "**+m",
"max-$erm#en-sie" => "5*m", "$erm#en-sie" => "5*m", "stac-sie" => "5",
%t!pe% =& ndefined
}}
O9:0;?2 M0: 074:;.
!ea$ sie="**+m" max-sie="**+m"/> $erm#en sie="5*m" max-sie="5*m"/> stacsie="5"/>
/vm>
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
20/56
Edt doma7.xm
10
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
21/56
!ea$ sie="**+m" max-sie="**+m"/> $erm#en sie="5*m" max-sie="5*m"/> stacsie="5"/>
/vm>
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
22/56
Co7:=re No7-LA datasor5e th eo attrtes
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
23/56
)et eo attrtes
Prepared stateme7t 5a5he è40
%7-poo è10
%ax-poo è2
)? vadato7 è)EEC' 1
Ba5;=ro7d vadato7 ètre*adato7 mse5o7ds è10 ms$epo> èdstest.ar
S089:0;
)tep1D "o to R7tme ta top r=ht sde o: 5o7soe a7d depo> post=res?.
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
24/56
)tep3D (t vadato7 ta a7d 5o7:=re eo sett7=s.
12
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
25/56
)tep4D (t attrtes.
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
26/56
13
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
27/56
)tepD )mar> ht poo ta a7d set the m7-poo to 10 a7d max-poo to 2.
)tep6D )et 'ra7sa5to7-read-5ommted
)tepD 7a> depo> dstest.ar app5ato7
T6-9:; 956 C0;:49:0;
(t D httpDo5ahostD8080dstest
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
28/56
(. DBMS S6:9 S69
.1. App5ato7 athe7t5ato7 th $ataase.
Beo detas od e =ve7 to 5o7:=re t
14
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
29/56
J7d 7ameD depo> se5reApp.ear
S089:0;
S96?1 H:9 0:86- 94> a7d the7 see5t 6489 0:86 a7d the7 =o to -6:9 ->--967 a7d the7see5t KS6:9 D074:;”
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
30/56
1
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
31/56
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
32/56
16
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
33/56
)tep2D 7a> =o to R7tme ta a7d depo> se5reApp.ear app5ato7.
T6-9:; 956 C0;:49:0;
httpDo5ahostD8080se5reApp
!t shod as; :or 5rede7tas to e e7tered. As soo7 as 5rede7tas are e7tered, app5ato7 =etsa55essed.
). D680 956 A8:49:0; 4- R009 C0;96
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
34/56
pro:ede:atss>stem evrta-serverde:at-hostDrte-attrte 7amee7ae-e5ome-root,vae:ase
or
!t 5a7 e do7e > mod:>7= doma7.xm)ear5h :or pro:ede:at a7d the7 sear5h :or vrta a7d 5ha7=e the e7ae-e5ometre to :ase.
1
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
35/56
S96?2 %od:> the ar :e
m;dr &EB-!N
v &EB-!N
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
36/56
18
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
37/56
S69:0; II
10. C0;:6 90 50-9 0;90886-
Co7:=re to =rops.
Co7:=re to hosts “50-91” a7d “50-92” . 'hs setp shod e 5o7:=red th 90 0- “C8-966” 4; “M4:8>0
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
38/56
(ost2 à !P-AddressD 1/2.168..21
5d optex248
5p GR doma7 %a5h7e1 5p GR doma7 %a5h7e2
NO'ED Co7:=re =rop th 5stered :eatre, hoever o are NO' sett7= p 5stered e7vro7me7t
r=ht aa>. A8-0 0 46 NOT 0:; 90 -6 M6--4:; ->--967, -0 746 -6 9549 :9 :- 6706.
1/
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
39/56
NOTE A88 956 JB0-- :;-94;6- -508 69 -9496 490749:488, 4- -00; 4- 956 50-9'0;908860 -66 :- 6-9496. M4;48 -949:; 0 JB0-- :;-94;6- -508 >6 40:6.
S089:0;
S96?1 Co7:=re to host 5o7troers.
S96?2 5d optex248
S96?3 5p GR doma7 %a5h7e1
S96?" 5p GR doma7 %a5h7e2
I7094;9 S96
S96?$ : /09/6
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
40/56
20
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
41/56
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
42/56
optex2487doma7.sh G$
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
43/56
CsteredFs2 à O7 host2 à Port-O::set à 0
maFs1 àO7 host1 à port-O::set à 200
à%aox
maFs2 à O7 host2 à Port-O::set à 200
Create to =rops Cstered a7d %aox a7d Cstered =rop shod have CsteredFs1 ICsteredFs2 Joss 7sta75es. )mar> %aox =rop shod have to 0< 90 96, 90 -949 956 :;-94;6- 490749:488.
11. C0;:6 TCP B4-6 C8-966 6;:0;76;9 -69.
%ost o: the 5od ve7dor do NO' ao #$P 5omm75ato7. !7 s5h s5e7aros e have have to 5o7:=re
Cster7= JBoss J"rops to se 'CP 7stead o: #$P.
B> de:at, 5ster 7odes mo7tor ea5h otherWs stats s7= the #$P proto5o. )ome 7etor;s o7> ao 'CP toe sed. !7 ths stato7, >o 5a7 add the 'CPP!N" proto5o sta5; to >or 5o7:=rato7 a7d se t as the de:atme5ha7sm. 'hese 5o7:=rato7 opto7s are avaae 7 the 5omma7d-7e ased %a7a=eme7t C!.'he 708-96 ss>stem aso ses #$P 5omm75ato7 > de:at, a7d >o 5a7 5hoose to se 'CP here ase.
IMPORTANT )etp !7sta75es o7 (ost%aster Co7troer tse: ased o7 the exam7ato7 ?esto7.
5d optex248%a5h7e15o7:=rato7 v doma7.xm
)ear5h :or pro:e:-ha
'he7 a=a7 sear5h :or dp a7d the7 repa5e t th t5p
D?T
ss>stem xm7sSr7D
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
44/56
//// X :96'499:>96;47696,486TCPPING //// X :96'499:>96;476-069'>:;:;
22
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
45/56
//// X /0:8688'54/->--967=0-/-949/09008MPING/069
////X ./:;:9:4850-9-/44861*2.1).(.2+Q(++,1*2.1).(.21Q(++
12. C0;:6 A456 >4-6 L04 >484;6.
S089:0;
S96?1 “=>0--” 40;9 :- :6; 88 46--.
/69/599/0;/445698 -90
@ /69/599/0;/445698 -949
ps Ge: Y =rep httpd
S96 ?2 Cop> mod-5ster modes to /69/599/7086-
/5076/-96;9/JB2")/09/=>0--'64'.+/7086-/;49:6/8:>"/599/7086- sdo 5p Met5httpdmodes NO'ED 7o 7eed o: s7= sdo 5omma7d
5p M et5httpdmodes
S96 ?3 Per:orm eo 5ha7=es 7 httpd.5o7: 'hese 5ha7=es are aread> 5ompeted 7 exam
1. Cha7=e the ste7 !P-Address o: Apa5he
!%POR'AN'D ! 7 Redhat JBoss 248 exam7ato7D )etp 599 ased oadaa75er a7d thesad #R shod or; a:ter exam7ato7D httpD1/2.168.0.205sterFtest
'he7 NO 7eed o: ma;d7= the A456 8:-96; 0; IP'A6--.
T56 8:-96; 6;9 08 8:6 >680, :; /69/599/0;/599.0;
L:-96; )+
L:-96; 1*2.1).+.2+ )+
2. )ear5h :or aa75er mode a7d 5omme7t t.
: /69/599/0;/599.0;
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
46/56
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
47/56
!75de 5o7:.dM.5o7:
5ha7=e the Apa5he ste7 !P-Address as eo
ste7 1/2.168.2.20D80 à ste7 !P address s aread> added.
L:-96; )+ à M4:; :9 8:-96; 0; L00>4 12(.+.+.1 >4-6 0; 6Faa75erFmode modesmodFprox>Faa75er.so à T5:- 8:;6 :- 4864
0776;96 :; 6
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
48/56
E7ae%CP%Re5eve
S66A69:-6 O à T5:- :;:496- -:; TCP P09008
o5ato7 mod5ster-ma7a=erQ )et(a7der modF5ster-ma7a=er Order de7>,ao
$e7> :rom a Ao :rom a
o5ato7Q*rta(ostQ
24
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
49/56
)ave I ext
S96 ?" )etp m>aa75er I prox>st 7 mod-5ster ss>stem 7der K:-ha pro:es.
O;6 :9 :- 0;6, :9 :88 4- 0 6804. G04564 4; 6-949 =>0-- -66 :;-94;6-. S96 ?$R6-949 H99
@ /69/599/>:;/445698 -90 @ /69/599/>:;/445698 -949
S96? A6-- 956 70'8-96 74;46 46.
599//1*2.1).(.2+/708-96'74;46
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
50/56
Y0 -508 >6 4>86 90 -66 488 956 JB0-- ;06- 0 88'54 0:86.
IMPORTANT C0;:6 -9: -6--:0;
2
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
51/56
IMPORTANT D680 956 8-966 48:49:0;.
13. C0;:6 JMS.
C6496 JMS C0;;69:0; F490. A8-0, 746 -6, 0 546 68696 60< 0.
NOTE 746 -6 9549 0;;69:0; F490 -508 >6 46--:>86 90 66 46--:>86 90 66 ;699 0;;690 96.
66 à 96-966 à C6496 66 :95 ;476 4- 96-966
A8:49:0;R6487
.add-ser.sh
&hat t>pe o: ser do >o sh to add
%a7a=eme7t #ser m=mt-sers.propertes App5ato7 #ser app5ato7-sers.propertes aD
E7ter the detas o: the 7e ser to add. Ream App5ato7Ream D
#ser7ame D o a7t ths ser to eo7= to Pease e7ter a 5omma separated st, or eave a7; :or 7o7eZ XD tester
Aot to add ser Wes7o >es
Added ser W
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
52/56
26
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
53/56
G:6 96-966 -6; 4; 0;-76 09:0;-
S6869 0:8688 07 =>0-- 074:; 0;-086
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
54/56
2
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
55/56
T6-9:; 956 C0;:49:0;
R7 the 5omma7d =ve7 7 the exam. &e shod e ae se7d a7d 5o7sme messa=es overdest7ato7 testHee.
-
8/17/2019 JBossEAP6 Pass Guarantee Paper
56/56
28